001package jmri.web.server;
002
003/**
004 * @author Steve Todd Copyright (C) 2011
005 * @author Randall Wood Copyright (C) 2012
006 */
007import javax.swing.BoxLayout;
008import javax.swing.JComponent;
009import javax.swing.JFrame;
010import javax.swing.JLabel;
011import javax.swing.JPanel;
012import javax.swing.JTextField;
013import jmri.InstanceManager;
014import jmri.swing.JTitledSeparator;
015import jmri.swing.PreferencesPanel;
016import org.openide.util.lookup.ServiceProvider;
017
018import java.beans.PropertyChangeEvent;
019import java.beans.PropertyChangeListener;
020
021@ServiceProvider(service = PreferencesPanel.class)
022public class RailroadNamePreferencesPanel extends JPanel implements PreferencesPanel, PropertyChangeListener {
023
024    private JTextField railroadName;
025    private WebServerPreferences preferences;
026    public RailroadNamePreferencesPanel() {
027        preferences = InstanceManager.getDefault(WebServerPreferences.class);
028        preferences.addPropertyChangeListener(this);
029        initGUI();
030        setGUI();
031    }
032
033    public RailroadNamePreferencesPanel(JFrame f) {
034        this();
035    }
036
037    private void initGUI() {
038        this.setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
039        add(new JTitledSeparator(Bundle.getMessage("TitleRailroadNamePreferences")));
040        add(rrNamePanel());
041    }
042
043    private void setGUI() {
044    }
045
046    private JPanel rrNamePanel() {
047        JPanel panel = new JPanel();
048        railroadName = new JTextField(preferences.getRailroadName());
049        railroadName.setToolTipText(Bundle.getMessage("ToolTipRailRoadName"));
050        railroadName.setColumns(30);
051        panel.add(new JLabel(Bundle.getMessage("LabelRailRoadName")));
052        panel.add(railroadName);
053        return panel;
054    }
055
056    @Override
057    public String getPreferencesItem() {
058        return Bundle.getMessage("RailroadNamePreferencesItem");
059    }
060
061    @Override
062    public String getPreferencesItemText() {
063        return Bundle.getMessage("RailroadNamePreferencesItemTitle");
064    }
065
066    @Override
067    public String getTabbedPreferencesTitle() {
068        return null;
069    }
070
071    @Override
072    public String getLabelKey() {
073        return null;
074    }
075
076    @Override
077    public JComponent getPreferencesComponent() {
078        return this;
079    }
080
081    @Override
082    public boolean isPersistant() {
083        return false;
084    }
085
086    @Override
087    public String getPreferencesTooltip() {
088        return null;
089    }
090
091    @Override
092    public void savePreferences() {
093        this.preferences.setRailroadName(railroadName.getText());
094        this.preferences.save();
095    }
096
097    @Override
098    public boolean isDirty() {
099        return this.preferences.isDirty();
100    }
101
102    @Override
103    public boolean isRestartRequired() {
104        return false;
105    }
106
107    @Override
108    public boolean isPreferencesValid() {
109        return true; // no validity checking performed
110    }
111
112    public void propertyChange(PropertyChangeEvent evt) {
113        String newRrName = evt.getNewValue().toString();
114        if (evt.getPropertyName().equals(WebServerPreferences.RAILROAD_NAME) && !this.railroadName.getText().equals(newRrName)) {
115            this.railroadName.setText(newRrName);
116        }
117    }
118}