disallowed starting plugins/visualizer skins for non-compatible motes/simulations

This commit is contained in:
Fredrik Osterlind 2012-05-24 13:58:12 +02:00
parent e18cc3b6b9
commit 24aafe5554
8 changed files with 95 additions and 51 deletions

View file

@ -102,6 +102,7 @@ import se.sics.cooja.ClassDescription;
import se.sics.cooja.GUI; import se.sics.cooja.GUI;
import se.sics.cooja.PluginType; import se.sics.cooja.PluginType;
import se.sics.cooja.Simulation; import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.VisPlugin; import se.sics.cooja.VisPlugin;
import se.sics.cooja.interfaces.DirectionalAntennaRadio; import se.sics.cooja.interfaces.DirectionalAntennaRadio;
import se.sics.cooja.interfaces.Position; import se.sics.cooja.interfaces.Position;
@ -123,6 +124,7 @@ import se.sics.mrm.ChannelModel.TxPair;
*/ */
@ClassDescription("MRM Radio environment") @ClassDescription("MRM Radio environment")
@PluginType(PluginType.SIM_PLUGIN) @PluginType(PluginType.SIM_PLUGIN)
@SupportedArguments(radioMediums = {MRM.class})
public class AreaViewer extends VisPlugin { public class AreaViewer extends VisPlugin {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(AreaViewer.class); private static Logger logger = Logger.getLogger(AreaViewer.class);

View file

@ -31,17 +31,38 @@
package se.sics.mrm; package se.sics.mrm;
import java.awt.*; import java.awt.BorderLayout;
import java.awt.event.*; import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener; import java.beans.PropertyChangeListener;
import java.text.NumberFormat; import java.text.NumberFormat;
import java.util.*; import java.util.ArrayList;
import javax.swing.*; import java.util.Collection;
import java.util.Observable;
import java.util.Observer;
import javax.swing.BorderFactory;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JCheckBox;
import javax.swing.JFormattedTextField;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import org.jdom.Element; import org.jdom.Element;
import se.sics.cooja.*; import se.sics.cooja.ClassDescription;
import se.sics.cooja.GUI;
import se.sics.cooja.PluginType;
import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.mrm.ChannelModel.Parameter; import se.sics.mrm.ChannelModel.Parameter;
/** /**
@ -51,6 +72,7 @@ import se.sics.mrm.ChannelModel.Parameter;
*/ */
@ClassDescription("MRM Settings") @ClassDescription("MRM Settings")
@PluginType(PluginType.SIM_PLUGIN) @PluginType(PluginType.SIM_PLUGIN)
@SupportedArguments(radioMediums = {MRM.class})
public class FormulaViewer extends se.sics.cooja.VisPlugin { public class FormulaViewer extends se.sics.cooja.VisPlugin {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
private static Logger logger = Logger.getLogger(FormulaViewer.class); private static Logger logger = Logger.getLogger(FormulaViewer.class);

View file

@ -39,6 +39,7 @@ import org.apache.log4j.Logger;
import se.sics.cooja.ClassDescription; import se.sics.cooja.ClassDescription;
import se.sics.cooja.Mote; import se.sics.cooja.Mote;
import se.sics.cooja.Simulation; import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.interfaces.Position; import se.sics.cooja.interfaces.Position;
import se.sics.cooja.interfaces.Radio; import se.sics.cooja.interfaces.Radio;
import se.sics.cooja.plugins.Visualizer; import se.sics.cooja.plugins.Visualizer;
@ -47,6 +48,7 @@ import se.sics.mrm.ChannelModel.RadioPair;
import se.sics.mrm.ChannelModel.TxPair; import se.sics.mrm.ChannelModel.TxPair;
@ClassDescription("Radio environment (MRM)") @ClassDescription("Radio environment (MRM)")
@SupportedArguments(radioMediums = {MRM.class})
public class MRMVisualizerSkin implements VisualizerSkin { public class MRMVisualizerSkin implements VisualizerSkin {
private static Logger logger = Logger.getLogger(MRMVisualizerSkin.class); private static Logger logger = Logger.getLogger(MRMVisualizerSkin.class);

View file

@ -52,6 +52,7 @@ import se.sics.cooja.Mote;
import se.sics.cooja.MotePlugin; import se.sics.cooja.MotePlugin;
import se.sics.cooja.PluginType; import se.sics.cooja.PluginType;
import se.sics.cooja.Simulation; import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.VisPlugin; import se.sics.cooja.VisPlugin;
import se.sics.cooja.dialogs.UpdateAggregator; import se.sics.cooja.dialogs.UpdateAggregator;
import se.sics.cooja.mspmote.MspMote; import se.sics.cooja.mspmote.MspMote;
@ -61,6 +62,7 @@ import se.sics.mspsim.cli.LineOutputStream;
@ClassDescription("Msp CLI") @ClassDescription("Msp CLI")
@PluginType(PluginType.MOTE_PLUGIN) @PluginType(PluginType.MOTE_PLUGIN)
@SupportedArguments(motes = {MspMote.class})
public class MspCLI extends VisPlugin implements MotePlugin { public class MspCLI extends VisPlugin implements MotePlugin {
private static final long serialVersionUID = 2833218439838209672L; private static final long serialVersionUID = 2833218439838209672L;

View file

@ -35,17 +35,31 @@ import java.awt.BorderLayout;
import java.awt.GridLayout; import java.awt.GridLayout;
import java.awt.event.ActionEvent; import java.awt.event.ActionEvent;
import java.awt.event.ActionListener; import java.awt.event.ActionListener;
import java.util.*; import java.util.Observable;
import java.util.Observer;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.*;
import org.apache.log4j.Logger; import org.apache.log4j.Logger;
import se.sics.cooja.*; import se.sics.cooja.ClassDescription;
import se.sics.cooja.GUI;
import se.sics.cooja.Mote;
import se.sics.cooja.MotePlugin;
import se.sics.cooja.PluginType;
import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.VisPlugin;
import se.sics.cooja.mspmote.MspMote; import se.sics.cooja.mspmote.MspMote;
import se.sics.mspsim.core.MSP430; import se.sics.mspsim.core.MSP430;
@ClassDescription("Msp Cycle Watcher") @ClassDescription("Msp Cycle Watcher")
@PluginType(PluginType.MOTE_PLUGIN) @PluginType(PluginType.MOTE_PLUGIN)
@SupportedArguments(motes = {MspMote.class})
public class MspCycleWatcher extends VisPlugin implements MotePlugin { public class MspCycleWatcher extends VisPlugin implements MotePlugin {
private static Logger logger = Logger.getLogger(MspStackWatcher.class); private static Logger logger = Logger.getLogger(MspStackWatcher.class);
private MspMote mspMote; private MspMote mspMote;

View file

@ -50,15 +50,16 @@ import se.sics.cooja.Mote;
import se.sics.cooja.MotePlugin; import se.sics.cooja.MotePlugin;
import se.sics.cooja.PluginType; import se.sics.cooja.PluginType;
import se.sics.cooja.Simulation; import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.VisPlugin; import se.sics.cooja.VisPlugin;
import se.sics.cooja.mspmote.MspMote; import se.sics.cooja.mspmote.MspMote;
import se.sics.mspsim.core.MSP430; import se.sics.mspsim.core.MSP430;
import se.sics.mspsim.ui.StackUI; import se.sics.mspsim.ui.StackUI;
import se.sics.mspsim.ui.WindowManager;
import se.sics.mspsim.util.Utils; import se.sics.mspsim.util.Utils;
@ClassDescription("Msp Stack Watcher") @ClassDescription("Msp Stack Watcher")
@PluginType(PluginType.MOTE_PLUGIN) @PluginType(PluginType.MOTE_PLUGIN)
@SupportedArguments(motes = {MspMote.class})
public class MspStackWatcher extends VisPlugin implements MotePlugin { public class MspStackWatcher extends VisPlugin implements MotePlugin {
private static Logger logger = Logger.getLogger(MspStackWatcher.class); private static Logger logger = Logger.getLogger(MspStackWatcher.class);

View file

@ -65,6 +65,7 @@ import se.sics.cooja.GUI;
import se.sics.cooja.Mote; import se.sics.cooja.Mote;
import se.sics.cooja.PluginType; import se.sics.cooja.PluginType;
import se.sics.cooja.Simulation; import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.VisPlugin; import se.sics.cooja.VisPlugin;
import se.sics.cooja.interfaces.Radio; import se.sics.cooja.interfaces.Radio;
import se.sics.cooja.radiomediums.AbstractRadioMedium; import se.sics.cooja.radiomediums.AbstractRadioMedium;
@ -82,6 +83,7 @@ import se.sics.cooja.util.StringUtils;
*/ */
@ClassDescription("DGRM Links") @ClassDescription("DGRM Links")
@PluginType(PluginType.SIM_PLUGIN) @PluginType(PluginType.SIM_PLUGIN)
@SupportedArguments(radioMediums = {DirectedGraphMedium.class})
public class DGRMConfigurator extends VisPlugin { public class DGRMConfigurator extends VisPlugin {
private static final long serialVersionUID = 4769638341635882051L; private static final long serialVersionUID = 4769638341635882051L;
private static Logger logger = Logger.getLogger(DGRMConfigurator.class); private static Logger logger = Logger.getLogger(DGRMConfigurator.class);

View file

@ -35,9 +35,6 @@ import java.awt.Color;
import java.awt.FontMetrics; import java.awt.FontMetrics;
import java.awt.Graphics; import java.awt.Graphics;
import java.awt.Point; import java.awt.Point;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.BorderFactory; import javax.swing.BorderFactory;
import javax.swing.Box; import javax.swing.Box;
@ -52,11 +49,12 @@ import org.apache.log4j.Logger;
import se.sics.cooja.ClassDescription; import se.sics.cooja.ClassDescription;
import se.sics.cooja.Mote; import se.sics.cooja.Mote;
import se.sics.cooja.Simulation; import se.sics.cooja.Simulation;
import se.sics.cooja.SupportedArguments;
import se.sics.cooja.interfaces.Position; import se.sics.cooja.interfaces.Position;
import se.sics.cooja.interfaces.Radio; import se.sics.cooja.interfaces.Radio;
import se.sics.cooja.plugins.Visualizer; import se.sics.cooja.plugins.Visualizer;
import se.sics.cooja.plugins.VisualizerSkin;
import se.sics.cooja.plugins.Visualizer.SimulationMenuAction; import se.sics.cooja.plugins.Visualizer.SimulationMenuAction;
import se.sics.cooja.plugins.VisualizerSkin;
import se.sics.cooja.radiomediums.UDGM; import se.sics.cooja.radiomediums.UDGM;
/** /**
@ -73,6 +71,7 @@ import se.sics.cooja.radiomediums.UDGM;
* @author Fredrik Osterlind * @author Fredrik Osterlind
*/ */
@ClassDescription("Radio environment (UDGM)") @ClassDescription("Radio environment (UDGM)")
@SupportedArguments(radioMediums = {UDGM.class})
public class UDGMVisualizerSkin implements VisualizerSkin { public class UDGMVisualizerSkin implements VisualizerSkin {
private static Logger logger = Logger.getLogger(UDGMVisualizerSkin.class); private static Logger logger = Logger.getLogger(UDGMVisualizerSkin.class);
@ -327,7 +326,7 @@ public class UDGMVisualizerSkin implements VisualizerSkin {
if (prob == 0.0d) { if (prob == 0.0d) {
continue; continue;
} }
String msg = (double)(((int)(1000*prob))/10.0) + "%"; String msg = (((int)(1000*prob))/10.0) + "%";
Position pos = m.getInterfaces().getPosition(); Position pos = m.getInterfaces().getPosition();
Point pixel = visualizer.transformPositionToPixel(pos); Point pixel = visualizer.transformPositionToPixel(pos);
int msgWidth = fm.stringWidth(msg); int msgWidth = fm.stringWidth(msg);