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}