package me.legrange.panstamp.gui.view; import javax.swing.JMenu; import me.legrange.panstamp.gui.model.Model; import javax.swing.JPopupMenu; import javax.swing.JTree; import javax.swing.tree.TreeCellRenderer; import javax.swing.tree.TreePath; import me.legrange.panstamp.Endpoint; import me.legrange.panstamp.PanStamp; import me.legrange.panstamp.gui.PanStampToolsGUI; import me.legrange.panstamp.gui.PanStampParamDialog; import me.legrange.panstamp.gui.PanStampSettingsDialog; import me.legrange.panstamp.gui.NetworkAddDialog; import me.legrange.panstamp.gui.SetValueDialog; /** * Controlling the visual bits of the application * * @author gideon */ public class View { public void showNetworkAddDialog() { if ((networkAdd == null) || !networkAdd.isVisible()) { networkAdd = new NetworkAddDialog(null, model); networkAdd.setVisible(true); } } public void showPanStampSettingsDialog(PanStamp panStamp) { new PanStampSettingsDialog(null, model, panStamp).setVisible(true); } public void showPanStampParamDialog(PanStamp panStamp) { new PanStampParamDialog(null, model, panStamp).setVisible(true); } public TreeCellRenderer getTreeCellRenderer() { return treeRender; } public JPopupMenu getTreePopupMenu(TreePath path) { return menus.getPopupMenu(path); } public JMenu getGatewayMenu() { return menus.getNetworkMenu(); } public JMenu getWorldMenu() { return menus.getWorldMenu(); } public JMenu getDeviceMenu() { return menus.getPanStampMenu(); } public JMenu getRegisterMenu() { return menus.getRegisterMenu(); } public JMenu getEndpointMenu() { return menus.getEndpointMenu(); } public View(PanStampToolsGUI window, Model model) { this.model = model; this.window = window; this.treeRender = new NetworkTreeNodeRenderer(model, this); menus = new Menus(this); } public Model getModel() { return model; } void showSetValueDialog(Endpoint ep) { SetValueDialog d = new SetValueDialog(window, ep); d.setVisible(true); } void showEndpointChart(Endpoint endpoint) { ChartFactory.getFactory(getModel()).getEndpointChart(endpoint).setVisible(true); } void showSignalChart(PanStamp panStamp) { ChartFactory.getFactory(getModel()).getSignalChart(panStamp).setVisible(true); } JTree getTree() { return window.getNetworkTree(); } private NetworkAddDialog networkAdd; private final TreeCellRenderer treeRender; private final Model model; private final PanStampToolsGUI window; private final Menus menus; }