From 1e2fee44d07d487d6ae6d451dd4731709835960b Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Tue, 10 Apr 2018 09:50:23 +0200 Subject: [PATCH] MainPanel prototype --- src/main/java/ch/psi/mxsc/BasePlate.java | 9 ++++-- src/main/java/ch/psi/mxsc/BasePlatePanel.java | 26 ++++++++++++----- src/main/java/ch/psi/mxsc/MainPanel.java | 2 +- src/main/java/ch/psi/mxsc/Puck.java | 23 ++++++++------- src/main/java/ch/psi/mxsc/PuckDetection.java | 29 +++++++++++++++---- src/main/java/ch/psi/mxsc/PuckPanel.java | 2 +- src/main/java/ch/psi/mxsc/Sample.java | 21 ++++++++------ 7 files changed, 75 insertions(+), 37 deletions(-) diff --git a/src/main/java/ch/psi/mxsc/BasePlate.java b/src/main/java/ch/psi/mxsc/BasePlate.java index b786e57..291e648 100644 --- a/src/main/java/ch/psi/mxsc/BasePlate.java +++ b/src/main/java/ch/psi/mxsc/BasePlate.java @@ -149,9 +149,12 @@ public class BasePlate extends DeviceBase { return plotRect; } - Color getBorderColor() { + Color getBorderColor(boolean drawBackground) { //return new Color(32,32,32); - return MainFrame.isDark() ? new Color(32,32,32) : Color.DARK_GRAY; + if (drawBackground){ + return MainFrame.isDark() ? new Color(32,32,32) : Color.DARK_GRAY; + } + return MainFrame.isDark() ? new Color(0,32,0) : new Color(0,64,0); } Color getColor() { @@ -204,7 +207,7 @@ public class BasePlate extends DeviceBase { g.setColor(getColor()); g.fillOval(boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height); } - g.setColor(getBorderColor()); + g.setColor(getBorderColor(drawBackground)); g.drawOval(boundingBox.x, boundingBox.y, boundingBox.width, boundingBox.height); } diff --git a/src/main/java/ch/psi/mxsc/BasePlatePanel.java b/src/main/java/ch/psi/mxsc/BasePlatePanel.java index 033c61a..7cbffc7 100644 --- a/src/main/java/ch/psi/mxsc/BasePlatePanel.java +++ b/src/main/java/ch/psi/mxsc/BasePlatePanel.java @@ -83,6 +83,16 @@ public class BasePlatePanel extends DevicePanel { repaint(); } + boolean selectable; + public boolean getSelectable() { + return selectable; + } + + public void setSelectable(boolean selectable) { + this.selectable = selectable; + } + + /** * This method is called from within the constructor to initialize the form. WARNING: Do NOT * modify this code. The content of this method is always regenerated by the Form Editor. @@ -201,7 +211,7 @@ public class BasePlatePanel extends DevicePanel { } private void checkMouseEvent(MouseEvent e, boolean pressed) { - if (isEnabled()) { + if (isEnabled() && selectable) { try { Sample sample = getSample(e.getX(), e.getY()); Puck puck = getPuck(e.getX(), e.getY()); @@ -244,13 +254,13 @@ public class BasePlatePanel extends DevicePanel { public void mouseClicked(MouseEvent e) { if (isEnabled()) { if (e.getButton() == java.awt.event.MouseEvent.BUTTON1) { - Sample sample = getSample(e.getX(), e.getY()); - Puck puck = getPuck(e.getX(), e.getY()); - if (sample != null) { - onSampleClicked(e, sample); - } else { - onPuckClicked(e, puck); - } + Sample sample = getSample(e.getX(), e.getY()); + Puck puck = getPuck(e.getX(), e.getY()); + if (sample != null) { + onSampleClicked(e, sample); + } else { + onPuckClicked(e, puck); + } } } } diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java index 949d52c..58beefd 100644 --- a/src/main/java/ch/psi/mxsc/MainPanel.java +++ b/src/main/java/ch/psi/mxsc/MainPanel.java @@ -29,7 +29,7 @@ public class MainPanel extends Panel { public void onInitialize(int runCount) { Controller.getInstance().onInitialize(runCount); basePlatePanel.setDevice((Device) getDevice("BasePlate")); - basePlatePanel.setEnabled(false); + basePlatePanel.setSelectable(false); } diff --git a/src/main/java/ch/psi/mxsc/Puck.java b/src/main/java/ch/psi/mxsc/Puck.java index 38ff5d5..aefafc0 100644 --- a/src/main/java/ch/psi/mxsc/Puck.java +++ b/src/main/java/ch/psi/mxsc/Puck.java @@ -206,8 +206,8 @@ public class Puck extends DeviceBase { ); } - Color getLabelColor() { - return Color.BLACK; + Color getLabelColor(boolean drawBackground) { + return drawBackground ? Color.BLACK : new Color (0,196,0); } Font getLabelFont() { @@ -230,13 +230,16 @@ public class Puck extends DeviceBase { return new Point(center.x - textSize.width / 2, center.y + (g.getFontMetrics().getAscent()/2)); } - Color getBorderColor() { - if (!isEnabled()){ + Color getBorderColor(boolean drawBackground) { + if (drawBackground){ + if (!isEnabled()){ + return Color.GRAY; + } else if (isSelected()){ + return new Color(32,32,32); + } return Color.GRAY; - } else if (isSelected()){ - return new Color(32,32,32); - } - return Color.GRAY; + } + return isSelected() ? new Color(0,32,0) : new Color(0,128,0); } int getReferenceDrawSize() { @@ -263,7 +266,7 @@ public class Puck extends DeviceBase { g.setColor(getColor()); g.fillOval(position.x - size / 2, position.y - size / 2, size, size); } - g.setColor(getBorderColor()); + g.setColor(getBorderColor(drawBackground)); g.drawOval(position.x - size / 2, position.y - size / 2, size, size); if (drawSamples){ @@ -287,7 +290,7 @@ public class Puck extends DeviceBase { //Draw text String text = String.valueOf(getIndex() + 1); Point labelPosition = getLabelPosition(text, g); - g.setColor(getLabelColor()); + g.setColor(getLabelColor(drawBackground)); if (drawId){ String id = getId(); if (id!=null) { diff --git a/src/main/java/ch/psi/mxsc/PuckDetection.java b/src/main/java/ch/psi/mxsc/PuckDetection.java index cce417b..838ff8e 100644 --- a/src/main/java/ch/psi/mxsc/PuckDetection.java +++ b/src/main/java/ch/psi/mxsc/PuckDetection.java @@ -17,12 +17,21 @@ import java.util.logging.Level; public class PuckDetection extends DeviceBase{ final String server; public volatile Chrono chrono; + boolean debug; public PuckDetection(String name, String server){ super(name); this.server = server.startsWith("tcp://") ? server : "tcp://" + server; } + public boolean isDebug(){ + return debug; + } + + public void setDebug(boolean value){ + debug = value; + } + Thread thread; Thread watchDog; @@ -72,11 +81,16 @@ public class PuckDetection extends DeviceBase{ //subscriber.subscribe("Status".getBytes()); subscriber.subscribe("".getBytes()); try{ + if (debug){ + System.out.println("Start listening"); + } while (!Thread.currentThread().isInterrupted()) { //String type = subscriber.recvStr(); //System.out.println(type); String contents = subscriber.recvStr(); - //System.out.println(contents); + if (debug){ + System.out.println(contents); + } processMessage(contents); if (Controller.getInstance()!=null){ @@ -86,6 +100,10 @@ public class PuckDetection extends DeviceBase{ chrono = new Chrono(); } } finally{ + if (debug){ + System.out.println("Stop listening"); + } + if (Controller.getInstance()!=null){ Controller.getInstance().clearPuckStates(); } @@ -107,7 +125,7 @@ public class PuckDetection extends DeviceBase{ for (List bus : detection){ for (List sensor : bus){ Integer indDetector = sensor.get(0); - Integer mecDetector = sensor.get(0); + Integer mecDetector = sensor.get(1); PuckState puck = Controller.getInstance().getPuckState(id); puck.set(mecDetector, indDetector); @@ -132,9 +150,10 @@ public class PuckDetection extends DeviceBase{ } public static void main(String[] args) throws IOException, InterruptedException { - PuckDetection pd = new PuckDetection("PD","129.129.110.83:5556"); - pd.initialize(); - + PuckDetection pd = new PuckDetection("PD","129.129.110.99:5556"); + //PuckDetection pd = new PuckDetection("PD","raspberrypi:5556"); + pd.setDebug(true); + pd.initialize(); Thread.sleep(100000); } } diff --git a/src/main/java/ch/psi/mxsc/PuckPanel.java b/src/main/java/ch/psi/mxsc/PuckPanel.java index dee2fec..0816626 100644 --- a/src/main/java/ch/psi/mxsc/PuckPanel.java +++ b/src/main/java/ch/psi/mxsc/PuckPanel.java @@ -61,7 +61,7 @@ public class PuckPanel extends DevicePanel { if ((size.width > 10) && (size.height > 10)) { int border = 5; Rectangle plotRect = new Rectangle(border, border, size.width - 2*border, size.height - 2*border); - getDevice().draw(g2d, plotRect, true, false, null); + getDevice().draw(g2d, plotRect, true, false, true, null); } } } diff --git a/src/main/java/ch/psi/mxsc/Sample.java b/src/main/java/ch/psi/mxsc/Sample.java index 1eb9fe6..eea1949 100644 --- a/src/main/java/ch/psi/mxsc/Sample.java +++ b/src/main/java/ch/psi/mxsc/Sample.java @@ -140,8 +140,8 @@ public class Sample extends DeviceBase { } - Color getLabelColor() { - return Color.DARK_GRAY; + Color getLabelColor(boolean drawBackground) { + return drawBackground ? Color.DARK_GRAY : new Color (0,128,0); } Font getLabelFont() { @@ -155,13 +155,16 @@ public class Sample extends DeviceBase { return new Point(center.x - textSize.width / 2 + 1, center.y + (g.getFontMetrics().getAscent()/2)); } - Color getBorderColor() { - if (!isEnabled()) { + Color getBorderColor(boolean drawBackground) { + if (drawBackground){ + if (!isEnabled()) { + return Color.GRAY; + } else if (isSelected()) { + return new Color(32,32,32); + } return Color.GRAY; - } else if (isSelected()) { - return new Color(32,32,32); } - return Color.GRAY; + return isSelected() ? new Color(0,32,0) : new Color(0,128,0); } void draw (Graphics2D g, boolean drawBackground){ @@ -172,13 +175,13 @@ public class Sample extends DeviceBase { g.setColor(getColor()); g.fillOval(position.x - size / 2, position.y - size / 2, size, size); } - g.setColor(getBorderColor()); + g.setColor(getBorderColor(drawBackground)); g.drawOval(position.x - size / 2, position.y - size / 2, size, size); String text = String.valueOf(index + 1); Point labelPosition = getLabelPosition(text, g); if (getNormalDrawSize()>10){ - g.setColor(getLabelColor()); + g.setColor(getLabelColor(drawBackground)); g.setFont(getLabelFont()); g.drawString(text, labelPosition.x, labelPosition.y); }