[cooja] Added @Override annotations for Visualizer and skins

This commit is contained in:
Enrico Joerns 2014-04-10 18:39:13 +02:00
parent 8e648bcece
commit 6e9b0e1497
3 changed files with 70 additions and 0 deletions

View File

@ -56,6 +56,7 @@ public class MRMVisualizerSkin implements VisualizerSkin {
private Simulation simulation = null;
private Visualizer visualizer = null;
@Override
public void setActive(Simulation simulation, Visualizer vis) {
if (!(simulation.getRadioMedium() instanceof MRM)) {
logger.fatal("Cannot activate MRM skin for unknown radio medium: " + simulation.getRadioMedium());
@ -65,6 +66,7 @@ public class MRMVisualizerSkin implements VisualizerSkin {
this.visualizer = vis;
}
@Override
public void setInactive() {
if (simulation == null) {
/* Skin was never activated */
@ -72,6 +74,7 @@ public class MRMVisualizerSkin implements VisualizerSkin {
}
}
@Override
public Color[] getColorOf(Mote mote) {
if (visualizer.getSelectedMotes().contains(mote)) {
return new Color[] { Color.CYAN };
@ -79,6 +82,7 @@ public class MRMVisualizerSkin implements VisualizerSkin {
return null;
}
@Override
public void paintBeforeMotes(Graphics g) {
Set<Mote> selectedMotes = visualizer.getSelectedMotes();
if (simulation == null || selectedMotes == null) {
@ -120,9 +124,11 @@ public class MRMVisualizerSkin implements VisualizerSkin {
}
final Radio dRadio = d.getInterfaces().getRadio();
TxPair txPair = new RadioPair() {
@Override
public Radio getFromRadio() {
return selectedMote.getInterfaces().getRadio();
}
@Override
public Radio getToRadio() {
return dRadio;
}
@ -154,9 +160,11 @@ public class MRMVisualizerSkin implements VisualizerSkin {
}
}
@Override
public void paintAfterMotes(Graphics g) {
}
@Override
public Visualizer getVisualizer() {
return visualizer;
}

View File

@ -249,12 +249,15 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
viewMenu = new JMenu("View");
viewMenu.addMenuListener(new MenuListener() {
@Override
public void menuSelected(MenuEvent e) {
viewMenu.removeAll();
populateSkinMenu(viewMenu);
}
@Override
public void menuDeselected(MenuEvent e) {
}
@Override
public void menuCanceled(MenuEvent e) {
}
});
@ -266,6 +269,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
this.setJMenuBar(menuBar);
Action zoomInAction = new AbstractAction("Zoom in") {
@Override
public void actionPerformed(ActionEvent e) {
zoomToFactor(zoomFactor() * 1.2);
}
@ -278,6 +282,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
zoomMenu.add(zoomInItem);
Action zoomOutAction = new AbstractAction("Zoom out") {
@Override
public void actionPerformed(ActionEvent e) {
zoomToFactor(zoomFactor() / 1.2);
}
@ -291,6 +296,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
JMenuItem resetViewportItem = new JMenuItem("Reset viewport");
resetViewportItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
resetViewport = 1;
repaint();
@ -302,6 +308,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Main canvas */
canvas = new JPanel() {
private static final long serialVersionUID = 1L;
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
@ -328,16 +335,19 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Observe simulation and mote positions */
posObserver = new Observer() {
@Override
public void update(Observable obs, Object obj) {
repaint();
}
};
simulation.getEventCentral().addMoteCountListener(newMotesListener = new MoteCountListener() {
@Override
public void moteWasAdded(Mote mote) {
Position pos = mote.getInterfaces().getPosition();
if (pos != null) {
pos.addObserver(posObserver);
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
resetViewport = 1;
repaint();
@ -345,6 +355,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
});
}
}
@Override
public void moteWasRemoved(Mote mote) {
Position pos = mote.getInterfaces().getPosition();
if (pos != null) {
@ -362,6 +373,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Observe mote highlights */
gui.addMoteHighlightObserver(moteHighligtObserver = new Observer() {
@Override
public void update(Observable obs, Object obj) {
if (!(obj instanceof Mote)) {
return;
@ -370,6 +382,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
final Timer timer = new Timer(100, null);
final Mote mote = (Mote) obj;
timer.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
/* Count down */
if (timer.getDelay() < 90) {
@ -395,6 +408,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Observe mote relations */
gui.addMoteRelationsObserver(moteRelationsObserver = new Observer() {
@Override
public void update(Observable obs, Object obj) {
repaint();
}
@ -408,6 +422,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
});
canvas.addMouseListener(new MouseAdapter() {
@Override
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
handlePopupRequest(e.getPoint());
@ -418,6 +433,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
handleMousePress(e);
}
}
@Override
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
handlePopupRequest(e.getPoint());
@ -430,6 +446,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
});
canvas.addMouseWheelListener(new MouseWheelListener() {
@Override
public void mouseWheelMoved(MouseWheelEvent mwe) {
int x = mwe.getX();
int y = mwe.getY();
@ -457,6 +474,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Drag and drop files to motes */
DropTargetListener dTargetListener = new DropTargetListener() {
@Override
public void dragEnter(DropTargetDragEvent dtde) {
if (acceptOrRejectDrag(dtde)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
@ -464,8 +482,10 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
dtde.rejectDrag();
}
}
@Override
public void dragExit(DropTargetEvent dte) {
}
@Override
public void dropActionChanged(DropTargetDragEvent dtde) {
if (acceptOrRejectDrag(dtde)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
@ -473,6 +493,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
dtde.rejectDrag();
}
}
@Override
public void dragOver(DropTargetDragEvent dtde) {
if (acceptOrRejectDrag(dtde)) {
dtde.acceptDrag(DnDConstants.ACTION_COPY_OR_MOVE);
@ -480,6 +501,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
dtde.rejectDrag();
}
}
@Override
public void drop(DropTargetDropEvent dtde) {
Transferable transferable = dtde.getTransferable();
@ -589,6 +611,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
repaint();
}
@Override
public void startPlugin() {
super.startPlugin();
if (loadedConfig) {
@ -677,6 +700,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
if (menuAction.isEnabled(this, mote)) {
JMenuItem menuItem = new JMenuItem(menuAction.getDescription(this, mote));
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
menuAction.doAction(Visualizer.this, mote);
}
@ -700,6 +724,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
if (menuAction.isEnabled(this, simulation)) {
JMenuItem menuItem = new JMenuItem(menuAction.getDescription(this, simulation));
menuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
menuAction.doAction(Visualizer.this, simulation);
}
@ -735,6 +760,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Mote-to-mote relations */
JCheckBoxMenuItem moteRelationsItem = new JCheckBoxMenuItem("Mote relations", showMoteToMoteRelations);
moteRelationsItem.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
JCheckBoxMenuItem menuItem = ((JCheckBoxMenuItem)e.getItem());
showMoteToMoteRelations = menuItem.isSelected();
@ -769,6 +795,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
item.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
JCheckBoxMenuItem menuItem = ((JCheckBoxMenuItem)e.getItem());
if (menuItem == null) {
@ -1248,6 +1275,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
/* Center visible motes */
final double smallXfinal = smallX, bigXfinal = bigX, smallYfinal = smallY, bigYfinal = bigY;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Position viewMid =
transformPixelToPosition(canvas.getWidth()/2, canvas.getHeight()/2);
@ -1331,6 +1359,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
return (y - viewportTransform.getTranslateY())/viewportTransform.getScaleY() ;
}
@Override
public void closePlugin() {
for (VisualizerSkin skin: currentSkins) {
skin.setInactive();
@ -1367,6 +1396,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
return selectedMotes;
}
@Override
public Collection<Element> getConfigXML() {
ArrayList<Element> config = new ArrayList<Element>();
Element element;
@ -1411,6 +1441,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
return config;
}
@Override
public boolean setConfigXML(Collection<Element> configXML, boolean visAvailable) {
loadedConfig = true;
showMoteToMoteRelations = false;
@ -1429,6 +1460,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
|| wanted.equals(Cooja.getDescriptionOf(skinClass))) {
final Class<? extends VisualizerSkin> skin = skinClass;
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
generateAndActivateSkin(skin);
}
@ -1467,6 +1499,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
private AbstractAction makeSkinsDefaultAction = new AbstractAction() {
@Override
public void actionPerformed(ActionEvent e) {
StringBuilder sb = new StringBuilder();
for (VisualizerSkin skin: currentSkins) {
@ -1480,37 +1513,46 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
};
protected static class ButtonClickMoteMenuAction implements MoteMenuAction {
@Override
public boolean isEnabled(Visualizer visualizer, Mote mote) {
return mote.getInterfaces().getButton() != null
&& !mote.getInterfaces().getButton().isPressed();
}
@Override
public String getDescription(Visualizer visualizer, Mote mote) {
return "Click button on " + mote;
}
@Override
public void doAction(Visualizer visualizer, Mote mote) {
mote.getInterfaces().getButton().clickButton();
}
};
protected static class DeleteMoteMenuAction implements MoteMenuAction {
@Override
public boolean isEnabled(Visualizer visualizer, Mote mote) {
return true;
}
@Override
public String getDescription(Visualizer visualizer, Mote mote) {
return "Delete " + mote;
}
@Override
public void doAction(Visualizer visualizer, Mote mote) {
mote.getSimulation().removeMote(mote);
}
};
protected static class ShowLEDMoteMenuAction implements MoteMenuAction {
@Override
public boolean isEnabled(Visualizer visualizer, Mote mote) {
return mote.getInterfaces().getLED() != null;
}
@Override
public String getDescription(Visualizer visualizer, Mote mote) {
return "Show LEDs on " + mote;
}
@Override
public void doAction(Visualizer visualizer, Mote mote) {
Simulation simulation = mote.getSimulation();
LED led = mote.getInterfaces().getLED();
@ -1536,6 +1578,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
};
protected static class ShowSerialMoteMenuAction implements MoteMenuAction {
@Override
public boolean isEnabled(Visualizer visualizer, Mote mote) {
for (MoteInterface intf: mote.getInterfaces().getInterfaces()) {
if (intf instanceof SerialPort) {
@ -1544,9 +1587,11 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
return false;
}
@Override
public String getDescription(Visualizer visualizer, Mote mote) {
return "Show serial port on " + mote;
}
@Override
public void doAction(Visualizer visualizer, Mote mote) {
Simulation simulation = mote.getSimulation();
SerialPort serialPort = null;
@ -1579,31 +1624,38 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
};
protected static class MoveMoteMenuAction implements MoteMenuAction {
@Override
public boolean isEnabled(Visualizer visualizer, Mote mote) {
return true;
}
@Override
public String getDescription(Visualizer visualizer, Mote mote) {
return "Move " + mote;
}
@Override
public void doAction(Visualizer visualizer, Mote mote) {
visualizer.beginMoveRequest(mote, false, false);
}
};
protected static class ResetViewportAction implements SimulationMenuAction {
@Override
public void doAction(Visualizer visualizer, Simulation simulation) {
visualizer.resetViewport = 1;
visualizer.repaint();
}
@Override
public String getDescription(Visualizer visualizer, Simulation simulation) {
return "Reset viewport";
}
@Override
public boolean isEnabled(Visualizer visualizer, Simulation simulation) {
return true;
}
};
protected static class ToggleDecorationsMenuAction implements SimulationMenuAction {
@Override
public void doAction(final Visualizer visualizer, Simulation simulation) {
if (!(visualizer.getUI() instanceof BasicInternalFrameUI)) {
return;
@ -1620,11 +1672,13 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
visualizer.revalidate();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
visualizer.repaint();
}
});
}
@Override
public String getDescription(Visualizer visualizer, Simulation simulation) {
if (!(visualizer.getUI() instanceof BasicInternalFrameUI)) {
return "Hide window decorations";
@ -1637,6 +1691,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
return "Hide window decorations";
}
@Override
public boolean isEnabled(Visualizer visualizer, Simulation simulation) {
if (!(visualizer.getUI() instanceof BasicInternalFrameUI)) {
return false;
@ -1645,6 +1700,7 @@ public class Visualizer extends VisPlugin implements HasQuickHelp {
}
}
@Override
public String getQuickHelp() {
return "<b>Network</b> "
+ "<p>The network window shows the positions of simulated motes. "

View File

@ -58,6 +58,7 @@ public class DGRMVisualizerSkin implements VisualizerSkin {
private Simulation simulation = null;
private Visualizer visualizer = null;
@Override
public void setActive(Simulation simulation, Visualizer vis) {
if (!(simulation.getRadioMedium() instanceof DirectedGraphMedium)) {
logger.fatal("Cannot activate DGRM skin for unknown radio medium: " + simulation.getRadioMedium());
@ -67,6 +68,7 @@ public class DGRMVisualizerSkin implements VisualizerSkin {
this.visualizer = vis;
}
@Override
public void setInactive() {
if (simulation == null) {
/* Skin was never activated */
@ -74,6 +76,7 @@ public class DGRMVisualizerSkin implements VisualizerSkin {
}
}
@Override
public Color[] getColorOf(Mote mote) {
if (visualizer.getSelectedMotes().contains(mote)) {
return new Color[] { Color.CYAN };
@ -81,6 +84,7 @@ public class DGRMVisualizerSkin implements VisualizerSkin {
return null;
}
@Override
public void paintBeforeMotes(Graphics g) {
Set<Mote> selectedMotes = visualizer.getSelectedMotes();
if (simulation == null || selectedMotes == null) {
@ -150,9 +154,11 @@ public class DGRMVisualizerSkin implements VisualizerSkin {
}
}
@Override
public void paintAfterMotes(Graphics g) {
}
@Override
public Visualizer getVisualizer() {
return visualizer;
}