Search in sources :

Example 16 with ConfigureManager

use of jmri.ConfigureManager in project JMRI by JMRI.

the class LayoutBlockManagerXml method replaceLayoutBlockManager.

/**
     * Replace the current LayoutBlockManager, if there is one, with one newly
     * created during a load operation. This is skipped if they are of the same
     * absolute type.
     */
protected void replaceLayoutBlockManager() {
    if (InstanceManager.getDefault(LayoutBlockManager.class).getClass().getName().equals(LayoutBlockManager.class.getName())) {
        return;
    }
    // if old manager exists, remove it from configuration process
    if (InstanceManager.getNullableDefault(LayoutBlockManager.class) != null) {
        InstanceManager.getDefault(jmri.ConfigureManager.class).deregister(InstanceManager.getDefault(LayoutBlockManager.class));
    }
    // register new one with InstanceManager
    LayoutBlockManager pManager = LayoutBlockManager.instance();
    InstanceManager.store(pManager, jmri.jmrit.display.layoutEditor.LayoutBlockManager.class);
    // register new one for configuration
    ConfigureManager cm = InstanceManager.getNullableDefault(jmri.ConfigureManager.class);
    if (cm != null) {
        cm.registerConfig(pManager, jmri.Manager.LAYOUTBLOCKS);
    }
}
Also used : ConfigureManager(jmri.ConfigureManager) LayoutBlockManager(jmri.jmrit.display.layoutEditor.LayoutBlockManager)

Example 17 with ConfigureManager

use of jmri.ConfigureManager in project JMRI by JMRI.

the class PanelEditor method init.

@Override
protected void init(String name) {
    Runnable r = new Runnable() {

        @Override
        public void run() {
            try {
                // Build resource catalog and load CatalogTree.xml now
                jmri.jmrit.catalog.CatalogPanel catalog = new jmri.jmrit.catalog.CatalogPanel();
                catalog.createNewBranch("IFJAR", "Program Directory", "resources");
            } catch (Exception ex) {
                log.error("Error in trying to setup preferences " + ex.toString());
            }
        }
    };
    Thread thr = new Thread(r);
    thr.start();
    java.awt.Container contentPane = this.getContentPane();
    contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.Y_AXIS));
    // common items
    JPanel common = new JPanel();
    common.setLayout(new FlowLayout());
    common.add(new JLabel(" x:"));
    common.add(nextX);
    common.add(new JLabel(" y:"));
    common.add(nextY);
    contentPane.add(common);
    setAllEditable(true);
    setShowHidden(true);
    super.setTargetPanel(null, makeFrame(name));
    super.setTargetPanelSize(400, 300);
    super.setDefaultToolTip(new ToolTip(null, 0, 0, new Font("SansSerif", Font.PLAIN, 12), Color.black, new Color(215, 225, 255), Color.black));
    // set scrollbar initial state
    setScroll(SCROLL_BOTH);
    // add menu - not using PanelMenu, because it now
    // has other stuff in it?
    JMenuBar menuBar = new JMenuBar();
    JMenu fileMenu = new JMenu(Bundle.getMessage("MenuFile"));
    menuBar.add(fileMenu);
    fileMenu.add(new jmri.jmrit.display.NewPanelAction(Bundle.getMessage("MenuItemNew")));
    fileMenu.add(new jmri.configurexml.StoreXmlUserAction(Bundle.getMessage("MenuItemStore")));
    JMenuItem storeIndexItem = new JMenuItem(Bundle.getMessage("MIStoreImageIndex"));
    fileMenu.add(storeIndexItem);
    storeIndexItem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            jmri.jmrit.catalog.ImageIndexEditor.storeImageIndex();
        }
    });
    JMenuItem editItem = new JMenuItem(Bundle.getMessage("editIndexMenu"));
    editItem.addActionListener(new ActionListener() {

        PanelEditor panelEd;

        @Override
        public void actionPerformed(ActionEvent e) {
            ImageIndexEditor ii = ImageIndexEditor.instance(panelEd);
            ii.pack();
            ii.setVisible(true);
        }

        ActionListener init(PanelEditor pe) {
            panelEd = pe;
            return this;
        }
    }.init(this));
    fileMenu.add(editItem);
    editItem = new JMenuItem(Bundle.getMessage("CPEView"));
    fileMenu.add(editItem);
    editItem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            changeView("jmri.jmrit.display.controlPanelEditor.ControlPanelEditor");
        }
    });
    fileMenu.addSeparator();
    JMenuItem deleteItem = new JMenuItem(Bundle.getMessage("DeletePanel"));
    fileMenu.add(deleteItem);
    deleteItem.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent event) {
            if (deletePanel()) {
                dispose(true);
            }
        }
    });
    setJMenuBar(menuBar);
    addHelpMenu("package.jmri.jmrit.display.PanelEditor", true);
    // allow naming the panel
    {
        JPanel namep = new JPanel();
        namep.setLayout(new FlowLayout());
        JButton b = new JButton(Bundle.getMessage("ButtonSetName"));
        b.addActionListener(new ActionListener() {

            PanelEditor editor;

            @Override
            public void actionPerformed(ActionEvent e) {
                // prompt for name
                String newName = JOptionPane.showInputDialog(null, Bundle.getMessage("PromptNewName"));
                if (newName == null) {
                    // cancelled
                    return;
                }
                if (jmri.jmrit.display.PanelMenu.instance().isPanelNameUsed(newName)) {
                    JOptionPane.showMessageDialog(null, Bundle.getMessage("CanNotRename"), Bundle.getMessage("PanelExist"), JOptionPane.ERROR_MESSAGE);
                    return;
                }
                if (getTargetPanel().getTopLevelAncestor() != null) {
                    ((JFrame) getTargetPanel().getTopLevelAncestor()).setTitle(newName);
                }
                editor.setTitle();
                jmri.jmrit.display.PanelMenu.instance().renameEditorPanel(editor);
            }

            ActionListener init(PanelEditor e) {
                editor = e;
                return this;
            }
        }.init(this));
        namep.add(b);
        this.getContentPane().add(namep);
    }
    // add a text label
    {
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());
        panel.add(labelAdd);
        labelAdd.setEnabled(false);
        labelAdd.setToolTipText(Bundle.getMessage("ToolTipWillActivate"));
        panel.add(nextLabel);
        labelAdd.addActionListener(new ActionListener() {

            PanelEditor editor;

            @Override
            public void actionPerformed(ActionEvent a) {
                editor.addLabel(nextLabel.getText());
            }

            ActionListener init(PanelEditor e) {
                editor = e;
                return this;
            }
        }.init(this));
        nextLabel.addKeyListener(new KeyAdapter() {

            @Override
            public void keyReleased(KeyEvent a) {
                if (nextLabel.getText().equals("")) {
                    labelAdd.setEnabled(false);
                    labelAdd.setToolTipText(Bundle.getMessage("ToolTipWillActivate"));
                } else {
                    labelAdd.setEnabled(true);
                    labelAdd.setToolTipText(null);
                }
            }
        });
        this.getContentPane().add(panel);
    }
    // Selection of the type of entity for the icon to represent is done from a combobox
    _addIconBox = new JComboBox<ComboBoxItem>();
    _addIconBox.setMinimumSize(new Dimension(75, 75));
    _addIconBox.setMaximumSize(new Dimension(200, 200));
    _addIconBox.addItem(new ComboBoxItem("RightTurnout"));
    _addIconBox.addItem(new ComboBoxItem("LeftTurnout"));
    _addIconBox.addItem(new ComboBoxItem("SlipTOEditor"));
    // NOI18N
    _addIconBox.addItem(new ComboBoxItem("Sensor"));
    _addIconBox.addItem(new ComboBoxItem("SignalHead"));
    _addIconBox.addItem(new ComboBoxItem("SignalMast"));
    _addIconBox.addItem(new ComboBoxItem("Memory"));
    _addIconBox.addItem(new ComboBoxItem("BlockLabel"));
    _addIconBox.addItem(new ComboBoxItem("Reporter"));
    _addIconBox.addItem(new ComboBoxItem("Light"));
    _addIconBox.addItem(new ComboBoxItem("Background"));
    _addIconBox.addItem(new ComboBoxItem("MultiSensor"));
    _addIconBox.addItem(new ComboBoxItem("RPSreporter"));
    _addIconBox.addItem(new ComboBoxItem("FastClock"));
    _addIconBox.addItem(new ComboBoxItem("Icon"));
    _addIconBox.setSelectedIndex(-1);
    // must be AFTER no selection is set
    _addIconBox.addItemListener(this);
    JPanel p1 = new JPanel();
    p1.setLayout(new BoxLayout(p1, BoxLayout.Y_AXIS));
    JPanel p2 = new JPanel();
    p2.setLayout(new FlowLayout());
    p2.add(new JLabel(Bundle.getMessage("selectTypeIcon")));
    p1.add(p2);
    p1.add(_addIconBox);
    contentPane.add(p1);
    // edit, position, control controls
    {
        // edit mode item
        contentPane.add(editableBox);
        editableBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent event) {
                setAllEditable(editableBox.isSelected());
                hiddenCheckBoxListener();
            }
        });
        editableBox.setSelected(isEditable());
        // positionable item
        contentPane.add(positionableBox);
        positionableBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent event) {
                setAllPositionable(positionableBox.isSelected());
            }
        });
        positionableBox.setSelected(allPositionable());
        // controlable item
        contentPane.add(controllingBox);
        controllingBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent event) {
                setAllControlling(controllingBox.isSelected());
            }
        });
        controllingBox.setSelected(allControlling());
        // hidden item
        contentPane.add(hiddenBox);
        hiddenCheckBoxListener();
        hiddenBox.setSelected(showHidden());
        /*
             contentPane.add(showCoordinatesBox);
             showCoordinatesBox.addActionListener(new ActionListener() {
             public void actionPerformed(ActionEvent e) {
             setShowCoordinates(showCoordinatesBox.isSelected());
             }
             });
             showCoordinatesBox.setSelected(showCoordinates());
             */
        contentPane.add(showTooltipBox);
        showTooltipBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                setAllShowTooltip(showTooltipBox.isSelected());
            }
        });
        showTooltipBox.setSelected(showTooltip());
        contentPane.add(menuBox);
        menuBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                setPanelMenuVisible(menuBox.isSelected());
            }
        });
        menuBox.setSelected(true);
        // Show/Hide Scroll Bars
        JPanel scrollPanel = new JPanel();
        scrollPanel.setLayout(new FlowLayout());
        scrollableLabel.setLabelFor(scrollableComboBox);
        scrollPanel.add(scrollableLabel);
        scrollPanel.add(scrollableComboBox);
        contentPane.add(scrollPanel);
        scrollableComboBox.addItem(Bundle.getMessage("ScrollNone"));
        scrollableComboBox.addItem(Bundle.getMessage("ScrollBoth"));
        scrollableComboBox.addItem(Bundle.getMessage("ScrollHorizontal"));
        scrollableComboBox.addItem(Bundle.getMessage("ScrollVertical"));
        scrollableComboBox.setSelectedIndex(SCROLL_BOTH);
        scrollableComboBox.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                setScroll(scrollableComboBox.getSelectedIndex());
            }
        });
    }
    // register the resulting panel for later configuration
    ConfigureManager cm = InstanceManager.getNullableDefault(jmri.ConfigureManager.class);
    if (cm != null) {
        cm.registerUser(this);
    }
    // when this window closes, set contents of target uneditable
    addWindowListener(new java.awt.event.WindowAdapter() {

        HashMap<String, JFrameItem> iconAdderFrames;

        @Override
        public void windowClosing(java.awt.event.WindowEvent e) {
            Iterator<JFrameItem> iter = iconAdderFrames.values().iterator();
            while (iter.hasNext()) {
                JFrameItem frame = iter.next();
                frame.dispose();
            }
        }

        WindowAdapter init(HashMap<String, JFrameItem> f) {
            iconAdderFrames = f;
            return this;
        }
    }.init(_iconEditorFrame));
    // and don't destroy the window
    setDefaultCloseOperation(JDialog.HIDE_ON_CLOSE);
    // move this editor panel off the panel's position
    getTargetFrame().setLocationRelativeTo(this);
    getTargetFrame().pack();
    getTargetFrame().setVisible(true);
    log.debug("PanelEditor ctor done.");
}
Also used : ToolTip(jmri.jmrit.display.ToolTip) JPanel(javax.swing.JPanel) FlowLayout(java.awt.FlowLayout) HashMap(java.util.HashMap) ActionEvent(java.awt.event.ActionEvent) BoxLayout(javax.swing.BoxLayout) KeyAdapter(java.awt.event.KeyAdapter) JButton(javax.swing.JButton) WindowAdapter(java.awt.event.WindowAdapter) Font(java.awt.Font) KeyEvent(java.awt.event.KeyEvent) ConfigureManager(jmri.ConfigureManager) JMenuItem(javax.swing.JMenuItem) Color(java.awt.Color) JLabel(javax.swing.JLabel) Dimension(java.awt.Dimension) ActionListener(java.awt.event.ActionListener) ImageIndexEditor(jmri.jmrit.catalog.ImageIndexEditor) JMenuBar(javax.swing.JMenuBar) JMenu(javax.swing.JMenu)

Example 18 with ConfigureManager

use of jmri.ConfigureManager in project JMRI by JMRI.

the class AbstractManager method registerSelf.

/**
     * By default, register this manager to store as configuration information.
     * Override to change that.
     *
     */
@OverridingMethodsMustInvokeSuper
protected void registerSelf() {
    log.debug("registerSelf for config of type {}", getClass());
    ConfigureManager cm = InstanceManager.getNullableDefault(jmri.ConfigureManager.class);
    if (cm != null) {
        cm.registerConfig(this, getXMLOrder());
        log.debug("registering for config of type {}", getClass());
    }
}
Also used : ConfigureManager(jmri.ConfigureManager) OverridingMethodsMustInvokeSuper(javax.annotation.OverridingMethodsMustInvokeSuper)

Example 19 with ConfigureManager

use of jmri.ConfigureManager in project JMRI by JMRI.

the class DefaultSignalMastLogicManager method dispose.

// Abstract methods to be extended by subclasses:
@Override
public void dispose() {
    ConfigureManager cm = InstanceManager.getNullableDefault(jmri.ConfigureManager.class);
    if (cm != null) {
        cm.deregister(this);
    }
    signalMastLogic.clear();
}
Also used : ConfigureManager(jmri.ConfigureManager)

Example 20 with ConfigureManager

use of jmri.ConfigureManager in project JMRI by JMRI.

the class AbstractSignalHeadManagerXml method replaceSignalHeadManager.

/**
     * Replace the current signal head manager, if there is one, with one newly
     * created during a load operation. This is skipped if they are of the same
     * absolute type.
     */
protected void replaceSignalHeadManager() {
    if (InstanceManager.getDefault(jmri.SignalHeadManager.class).getClass().getName().equals(AbstractSignalHeadManager.class.getName())) {
        return;
    }
    // if old manager exists, remove it from configuration process
    if (InstanceManager.getNullableDefault(jmri.SignalHeadManager.class) != null) {
        InstanceManager.getDefault(jmri.ConfigureManager.class).deregister(InstanceManager.getDefault(jmri.SignalHeadManager.class));
    }
    // register new one with InstanceManager
    AbstractSignalHeadManager pManager = new AbstractSignalHeadManager();
    InstanceManager.setSignalHeadManager(pManager);
    // register new one for configuration
    ConfigureManager cm = InstanceManager.getNullableDefault(jmri.ConfigureManager.class);
    if (cm != null) {
        cm.registerConfig(pManager, jmri.Manager.SIGNALHEADS);
    }
}
Also used : ConfigureManager(jmri.ConfigureManager) AbstractSignalHeadManager(jmri.managers.AbstractSignalHeadManager) SignalHeadManager(jmri.SignalHeadManager) AbstractSignalHeadManager(jmri.managers.AbstractSignalHeadManager)

Aggregations

ConfigureManager (jmri.ConfigureManager)37 Color (java.awt.Color)7 Attribute (org.jdom2.Attribute)6 Element (org.jdom2.Element)6 JmriException (jmri.JmriException)4 AbstractXmlAdapter (jmri.configurexml.AbstractXmlAdapter)4 XmlAdapter (jmri.configurexml.XmlAdapter)4 Font (java.awt.Font)3 Point (java.awt.Point)3 File (java.io.File)3 BoxLayout (javax.swing.BoxLayout)3 JMenuBar (javax.swing.JMenuBar)3 ToolTip (jmri.jmrit.display.ToolTip)3 Container (java.awt.Container)2 Dimension (java.awt.Dimension)2 FlowLayout (java.awt.FlowLayout)2 ActionEvent (java.awt.event.ActionEvent)2 ActionListener (java.awt.event.ActionListener)2 HashMap (java.util.HashMap)2 OverridingMethodsMustInvokeSuper (javax.annotation.OverridingMethodsMustInvokeSuper)2