Fixed missing initialization
This commit is contained in:
@@ -1,292 +1,292 @@
|
||||
/*
|
||||
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
|
||||
*/
|
||||
package ch.psi.mxsc;
|
||||
|
||||
import ch.psi.pshell.device.Device;
|
||||
import ch.psi.pshell.device.DeviceBase;
|
||||
import ch.psi.pshell.imaging.DimensionDouble;
|
||||
import ch.psi.pshell.imaging.PointDouble;
|
||||
import ch.psi.utils.swing.SwingUtils;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class Puck extends DeviceBase {
|
||||
final static PointDouble[] samplesPosition = new PointDouble[]{
|
||||
new PointDouble(0, 24.24),
|
||||
new PointDouble(23.05360995, 7.490571944),
|
||||
new PointDouble(14.24791452, -19.61057194),
|
||||
new PointDouble(-14.24791452, -19.61057194),
|
||||
new PointDouble(-23.05360995, 7.490571944),
|
||||
new PointDouble(0, 52.52),
|
||||
new PointDouble(28.39445573, 44.18263554),
|
||||
new PointDouble(47.7738724, 21.81759648),
|
||||
new PointDouble(51.98542213, -7.474375306),
|
||||
new PointDouble(39.69196765, -34.39328575),
|
||||
new PointDouble(14.79659389, -50.39257097),
|
||||
new PointDouble(-14.79659389, -50.39257097),
|
||||
new PointDouble(-39.69196765, -34.39328575),
|
||||
new PointDouble(-51.98542213, -7.474375306),
|
||||
new PointDouble(-47.7738724, 21.81759648),
|
||||
new PointDouble(-28.39445573, 44.18263554)
|
||||
};
|
||||
|
||||
final static PointDouble referencePosition = new PointDouble(0.0, -66.9);
|
||||
final static Double referenceSize = 6.2;
|
||||
|
||||
final int numberOfSamples = samplesPosition.length;
|
||||
|
||||
|
||||
|
||||
Puck() {
|
||||
super();
|
||||
for (int i =0; i< numberOfSamples; i++){
|
||||
Sample sample = new Sample();
|
||||
sample.puck = this;
|
||||
sample.index = i;
|
||||
addChild(sample);
|
||||
}
|
||||
}
|
||||
|
||||
BasePlate basePlate;
|
||||
|
||||
public BasePlate getBasePlate() {
|
||||
return basePlate;
|
||||
}
|
||||
|
||||
DimensionDouble getSize(){
|
||||
return new DimensionDouble(67.0, 67.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Sample[] getSamples() {
|
||||
ArrayList<Sample> ret = new ArrayList<>();
|
||||
for (Device d : getChildren()) {
|
||||
ret.add((Sample) d);
|
||||
}
|
||||
return ret.toArray(new Sample[0]);
|
||||
}
|
||||
|
||||
public PointDouble getSamplePosition(Sample sample) {
|
||||
return samplesPosition[sample.index];
|
||||
}
|
||||
|
||||
|
||||
int index;
|
||||
|
||||
public int getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
public void setIndex(int value) {
|
||||
index = value;
|
||||
}
|
||||
|
||||
String id;
|
||||
|
||||
public String getId() {
|
||||
//return "XXX000" + index;
|
||||
return id;
|
||||
}
|
||||
|
||||
public void seId(String value) {
|
||||
id = value;
|
||||
}
|
||||
|
||||
boolean enabled;
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean value) {
|
||||
enabled = value;
|
||||
}
|
||||
|
||||
public enum Detection{
|
||||
Empty,
|
||||
Present,
|
||||
Offline,
|
||||
Error
|
||||
}
|
||||
|
||||
Detection detection;
|
||||
public Detection getDetection() {
|
||||
return detection;
|
||||
}
|
||||
|
||||
boolean detectionError;
|
||||
public boolean isDetectionError() {
|
||||
return detectionError;
|
||||
}
|
||||
|
||||
boolean selected;
|
||||
|
||||
public boolean isSelected() {
|
||||
return selected;
|
||||
}
|
||||
|
||||
public void setSelected(boolean value) {
|
||||
if (value != selected){
|
||||
if (value == true){
|
||||
for (Device d : getParent().getChildren()){
|
||||
if (d instanceof Puck){
|
||||
((Puck)d).selected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
selected = value;
|
||||
}
|
||||
}
|
||||
|
||||
public int getNumberOfSamples() {
|
||||
return numberOfSamples;
|
||||
}
|
||||
|
||||
Color getColor() {
|
||||
Color ret = Color.LIGHT_GRAY;
|
||||
switch (detection){
|
||||
case Empty:
|
||||
ret = Color.LIGHT_GRAY;
|
||||
break;
|
||||
case Present:
|
||||
ret = new Color(0, 92, 92);
|
||||
break;
|
||||
case Error:
|
||||
ret = new Color(128, 0, 0);
|
||||
break;
|
||||
case Offline:
|
||||
ret = new Color(92, 92, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
boolean selected = isSelected();
|
||||
if (isSelected()) {
|
||||
ret = ret.brighter();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int getDrawSize() {
|
||||
//Single puck plot
|
||||
if (plotRect != null){
|
||||
return Math.min(plotRect.width, plotRect.height);
|
||||
}
|
||||
//All pucks
|
||||
Rectangle plotRect = basePlate.getPlotRect();
|
||||
int ret = Math.min(
|
||||
(int)((getSize().getWidth() / basePlate.getSize().getWidth()) * plotRect.width),
|
||||
(int)((getSize().getHeight() / basePlate.getSize().getHeight()) * plotRect.height)
|
||||
);
|
||||
if (isSelected()) {
|
||||
ret += 2;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Point getDrawPosition() {
|
||||
//Single puck plot
|
||||
if (plotRect != null){
|
||||
return new Point((int)plotRect.getCenterX(), (int)plotRect.getCenterY());
|
||||
}
|
||||
//All pucks
|
||||
Rectangle plotRect = basePlate.getPlotRect();
|
||||
DimensionDouble plateSize = basePlate.getSize();
|
||||
PointDouble pos = basePlate.getPuckPosition(this);
|
||||
return new Point( (int) ((pos.x / plateSize.getWidth())*plotRect.width + plotRect.getCenterX()) ,
|
||||
(int) ((pos.y / plateSize.getHeight())*plotRect.height + plotRect.getCenterY())
|
||||
);
|
||||
}
|
||||
|
||||
Color getLabelColor() {
|
||||
return Color.BLACK;
|
||||
}
|
||||
|
||||
Font getLabelFont() {
|
||||
return new Font("Times New Roman", Font.BOLD, 12);
|
||||
}
|
||||
|
||||
Font getIdFont() {
|
||||
return new Font("Times New Roman", Font.PLAIN, 9);
|
||||
}
|
||||
|
||||
Point getLabelPosition(String text, Graphics g) {
|
||||
Point center = getDrawPosition();
|
||||
Dimension textSize = SwingUtils.getTextSize(text, g.getFontMetrics());
|
||||
return new Point(center.x - textSize.width / 2, center.y + (g.getFontMetrics().getAscent()/2));
|
||||
}
|
||||
|
||||
Color getBorderColor() {
|
||||
if (!isEnabled()){
|
||||
return Color.GRAY;
|
||||
} else if (isSelected()){
|
||||
return Color.BLACK;
|
||||
}
|
||||
return Color.GRAY;
|
||||
}
|
||||
|
||||
int getReferenceDrawSize() {
|
||||
return (int)((referenceSize / getSize().getWidth()) * getDrawSize());
|
||||
}
|
||||
|
||||
|
||||
Point getReferenceDrawPosition() {
|
||||
Point puckCenter = getDrawPosition();
|
||||
int puckDrawSize = getDrawSize();
|
||||
DimensionDouble puckSize = getSize();
|
||||
int size = getReferenceDrawSize();
|
||||
return new Point( (int) ((referencePosition.x / puckSize.getWidth())* puckDrawSize/2 + puckCenter.x) ,
|
||||
(int) ((referencePosition.y / puckSize.getHeight())* puckDrawSize/2 + puckCenter.y) );
|
||||
}
|
||||
|
||||
Rectangle plotRect;
|
||||
void draw (Graphics2D g, Rectangle plotRect, boolean drawSamples, boolean drawId){
|
||||
this.plotRect = plotRect;
|
||||
Point position = getDrawPosition();
|
||||
int size = getDrawSize();
|
||||
g.setColor(getColor());
|
||||
g.fillOval(position.x - size / 2, position.y - size / 2, size, size);
|
||||
g.setColor(getBorderColor());
|
||||
g.drawOval(position.x - size / 2, position.y - size / 2, size, size);
|
||||
|
||||
if (drawSamples){
|
||||
//Draw samples
|
||||
for (Sample sample: getSamples()) {
|
||||
sample.draw(g);
|
||||
}
|
||||
}
|
||||
|
||||
//Draw reference
|
||||
g.setColor(Color.DARK_GRAY);
|
||||
position = getReferenceDrawPosition();
|
||||
size = getReferenceDrawSize();
|
||||
g.fillArc(position.x - size / 2, position.y - size / 2, size, size, 180, 180);
|
||||
|
||||
//Draw text
|
||||
String text = String.valueOf(getIndex() + 1);
|
||||
Point labelPosition = getLabelPosition(text, g);
|
||||
g.setColor(getLabelColor());
|
||||
if (drawId){
|
||||
String id = getId();
|
||||
if (id!=null) {
|
||||
labelPosition.setLocation(labelPosition.x, labelPosition.y - 6);
|
||||
g.setFont(getIdFont());
|
||||
Dimension textSize = SwingUtils.getTextSize(id, g.getFontMetrics());
|
||||
g.drawString(id, getDrawPosition().x - textSize.width/2 , getDrawPosition().y + 10 );
|
||||
}
|
||||
}
|
||||
g.setFont(getLabelFont());
|
||||
g.drawString(text, labelPosition.x, labelPosition.y);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
|
||||
*/
|
||||
package ch.psi.mxsc;
|
||||
|
||||
import ch.psi.pshell.device.Device;
|
||||
import ch.psi.pshell.device.DeviceBase;
|
||||
import ch.psi.pshell.imaging.DimensionDouble;
|
||||
import ch.psi.pshell.imaging.PointDouble;
|
||||
import ch.psi.utils.swing.SwingUtils;
|
||||
import java.awt.Color;
|
||||
import java.awt.Dimension;
|
||||
import java.awt.Font;
|
||||
import java.awt.Graphics;
|
||||
import java.awt.Graphics2D;
|
||||
import java.awt.Point;
|
||||
import java.awt.Rectangle;
|
||||
import java.util.ArrayList;
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
public class Puck extends DeviceBase {
|
||||
final static PointDouble[] samplesPosition = new PointDouble[]{
|
||||
new PointDouble(0, 24.24),
|
||||
new PointDouble(23.05360995, 7.490571944),
|
||||
new PointDouble(14.24791452, -19.61057194),
|
||||
new PointDouble(-14.24791452, -19.61057194),
|
||||
new PointDouble(-23.05360995, 7.490571944),
|
||||
new PointDouble(0, 52.52),
|
||||
new PointDouble(28.39445573, 44.18263554),
|
||||
new PointDouble(47.7738724, 21.81759648),
|
||||
new PointDouble(51.98542213, -7.474375306),
|
||||
new PointDouble(39.69196765, -34.39328575),
|
||||
new PointDouble(14.79659389, -50.39257097),
|
||||
new PointDouble(-14.79659389, -50.39257097),
|
||||
new PointDouble(-39.69196765, -34.39328575),
|
||||
new PointDouble(-51.98542213, -7.474375306),
|
||||
new PointDouble(-47.7738724, 21.81759648),
|
||||
new PointDouble(-28.39445573, 44.18263554)
|
||||
};
|
||||
|
||||
final static PointDouble referencePosition = new PointDouble(0.0, -66.9);
|
||||
final static Double referenceSize = 6.2;
|
||||
|
||||
final int numberOfSamples = samplesPosition.length;
|
||||
|
||||
|
||||
|
||||
Puck() {
|
||||
super();
|
||||
for (int i =0; i< numberOfSamples; i++){
|
||||
Sample sample = new Sample();
|
||||
sample.puck = this;
|
||||
sample.index = i;
|
||||
addChild(sample);
|
||||
}
|
||||
}
|
||||
|
||||
BasePlate basePlate;
|
||||
|
||||
public BasePlate getBasePlate() {
|
||||
return basePlate;
|
||||
}
|
||||
|
||||
DimensionDouble getSize(){
|
||||
return new DimensionDouble(67.0, 67.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
public Sample[] getSamples() {
|
||||
ArrayList<Sample> ret = new ArrayList<>();
|
||||
for (Device d : getChildren()) {
|
||||
ret.add((Sample) d);
|
||||
}
|
||||
return ret.toArray(new Sample[0]);
|
||||
}
|
||||
|
||||
public PointDouble getSamplePosition(Sample sample) {
|
||||
return samplesPosition[sample.index];
|
||||
}
|
||||
|
||||
|
||||
int index;
|
||||
|
||||
public int getIndex() {
|
||||
return index;
|
||||
}
|
||||
|
||||
public void setIndex(int value) {
|
||||
index = value;
|
||||
}
|
||||
|
||||
String id;
|
||||
|
||||
public String getId() {
|
||||
//return "XXX000" + index;
|
||||
return id;
|
||||
}
|
||||
|
||||
public void seId(String value) {
|
||||
id = value;
|
||||
}
|
||||
|
||||
boolean enabled;
|
||||
|
||||
public boolean isEnabled() {
|
||||
return enabled;
|
||||
}
|
||||
|
||||
public void setEnabled(boolean value) {
|
||||
enabled = value;
|
||||
}
|
||||
|
||||
public enum Detection{
|
||||
Empty,
|
||||
Present,
|
||||
Offline,
|
||||
Error
|
||||
}
|
||||
|
||||
Detection detection = Detection.Error;
|
||||
public Detection getDetection() {
|
||||
return detection;
|
||||
}
|
||||
|
||||
boolean detectionError;
|
||||
public boolean isDetectionError() {
|
||||
return detectionError;
|
||||
}
|
||||
|
||||
boolean selected;
|
||||
|
||||
public boolean isSelected() {
|
||||
return selected;
|
||||
}
|
||||
|
||||
public void setSelected(boolean value) {
|
||||
if (value != selected){
|
||||
if (value == true){
|
||||
for (Device d : getParent().getChildren()){
|
||||
if (d instanceof Puck){
|
||||
((Puck)d).selected = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
selected = value;
|
||||
}
|
||||
}
|
||||
|
||||
public int getNumberOfSamples() {
|
||||
return numberOfSamples;
|
||||
}
|
||||
|
||||
Color getColor() {
|
||||
Color ret = Color.LIGHT_GRAY;
|
||||
switch (detection){
|
||||
case Empty:
|
||||
ret = Color.LIGHT_GRAY;
|
||||
break;
|
||||
case Present:
|
||||
ret = new Color(0, 92, 92);
|
||||
break;
|
||||
case Error:
|
||||
ret = new Color(128, 0, 0);
|
||||
break;
|
||||
case Offline:
|
||||
ret = new Color(92, 92, 0);
|
||||
break;
|
||||
}
|
||||
|
||||
boolean selected = isSelected();
|
||||
if (isSelected()) {
|
||||
ret = ret.brighter();
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int getDrawSize() {
|
||||
//Single puck plot
|
||||
if (plotRect != null){
|
||||
return Math.min(plotRect.width, plotRect.height);
|
||||
}
|
||||
//All pucks
|
||||
Rectangle plotRect = basePlate.getPlotRect();
|
||||
int ret = Math.min(
|
||||
(int)((getSize().getWidth() / basePlate.getSize().getWidth()) * plotRect.width),
|
||||
(int)((getSize().getHeight() / basePlate.getSize().getHeight()) * plotRect.height)
|
||||
);
|
||||
if (isSelected()) {
|
||||
ret += 2;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
Point getDrawPosition() {
|
||||
//Single puck plot
|
||||
if (plotRect != null){
|
||||
return new Point((int)plotRect.getCenterX(), (int)plotRect.getCenterY());
|
||||
}
|
||||
//All pucks
|
||||
Rectangle plotRect = basePlate.getPlotRect();
|
||||
DimensionDouble plateSize = basePlate.getSize();
|
||||
PointDouble pos = basePlate.getPuckPosition(this);
|
||||
return new Point( (int) ((pos.x / plateSize.getWidth())*plotRect.width + plotRect.getCenterX()) ,
|
||||
(int) ((pos.y / plateSize.getHeight())*plotRect.height + plotRect.getCenterY())
|
||||
);
|
||||
}
|
||||
|
||||
Color getLabelColor() {
|
||||
return Color.BLACK;
|
||||
}
|
||||
|
||||
Font getLabelFont() {
|
||||
return new Font("Times New Roman", Font.BOLD, 12);
|
||||
}
|
||||
|
||||
Font getIdFont() {
|
||||
return new Font("Times New Roman", Font.PLAIN, 9);
|
||||
}
|
||||
|
||||
Point getLabelPosition(String text, Graphics g) {
|
||||
Point center = getDrawPosition();
|
||||
Dimension textSize = SwingUtils.getTextSize(text, g.getFontMetrics());
|
||||
return new Point(center.x - textSize.width / 2, center.y + (g.getFontMetrics().getAscent()/2));
|
||||
}
|
||||
|
||||
Color getBorderColor() {
|
||||
if (!isEnabled()){
|
||||
return Color.GRAY;
|
||||
} else if (isSelected()){
|
||||
return Color.BLACK;
|
||||
}
|
||||
return Color.GRAY;
|
||||
}
|
||||
|
||||
int getReferenceDrawSize() {
|
||||
return (int)((referenceSize / getSize().getWidth()) * getDrawSize());
|
||||
}
|
||||
|
||||
|
||||
Point getReferenceDrawPosition() {
|
||||
Point puckCenter = getDrawPosition();
|
||||
int puckDrawSize = getDrawSize();
|
||||
DimensionDouble puckSize = getSize();
|
||||
int size = getReferenceDrawSize();
|
||||
return new Point( (int) ((referencePosition.x / puckSize.getWidth())* puckDrawSize/2 + puckCenter.x) ,
|
||||
(int) ((referencePosition.y / puckSize.getHeight())* puckDrawSize/2 + puckCenter.y) );
|
||||
}
|
||||
|
||||
Rectangle plotRect;
|
||||
void draw (Graphics2D g, Rectangle plotRect, boolean drawSamples, boolean drawId){
|
||||
this.plotRect = plotRect;
|
||||
Point position = getDrawPosition();
|
||||
int size = getDrawSize();
|
||||
g.setColor(getColor());
|
||||
g.fillOval(position.x - size / 2, position.y - size / 2, size, size);
|
||||
g.setColor(getBorderColor());
|
||||
g.drawOval(position.x - size / 2, position.y - size / 2, size, size);
|
||||
|
||||
if (drawSamples){
|
||||
//Draw samples
|
||||
for (Sample sample: getSamples()) {
|
||||
sample.draw(g);
|
||||
}
|
||||
}
|
||||
|
||||
//Draw reference
|
||||
g.setColor(Color.DARK_GRAY);
|
||||
position = getReferenceDrawPosition();
|
||||
size = getReferenceDrawSize();
|
||||
g.fillArc(position.x - size / 2, position.y - size / 2, size, size, 180, 180);
|
||||
|
||||
//Draw text
|
||||
String text = String.valueOf(getIndex() + 1);
|
||||
Point labelPosition = getLabelPosition(text, g);
|
||||
g.setColor(getLabelColor());
|
||||
if (drawId){
|
||||
String id = getId();
|
||||
if (id!=null) {
|
||||
labelPosition.setLocation(labelPosition.x, labelPosition.y - 6);
|
||||
g.setFont(getIdFont());
|
||||
Dimension textSize = SwingUtils.getTextSize(id, g.getFontMetrics());
|
||||
g.drawString(id, getDrawPosition().x - textSize.width/2 , getDrawPosition().y + 10 );
|
||||
}
|
||||
}
|
||||
g.setFont(getLabelFont());
|
||||
g.drawString(text, labelPosition.x, labelPosition.y);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user