| Home >> All >> org >> bdgp >> apps >> dagedit >> [ gui Javadoc ] |
Source code: org/bdgp/apps/dagedit/gui/DbxrefEditorComponent.java
1 package org.bdgp.apps.dagedit.gui; 2 3 import javax.swing.*; 4 import java.awt.*; 5 import java.awt.event.*; 6 import org.bdgp.swing.*; 7 import org.bdgp.apps.dagedit.datamodel.*; 8 import java.util.Vector; 9 10 public class DbxrefEditorComponent extends JPanel implements GenericEditorComponent { 11 12 JTextField dbnameField; 13 JTextField idField; 14 JTextField descField; 15 JComboBox typeBox; 16 int defaultType; 17 private Vector types = new Vector(); 18 Dbxref ref; 19 Controller controller; 20 ListEditor editor; 21 22 public void setMasterComponent(Component c) { 23 if (c instanceof ListEditor) 24 editor = (ListEditor) c; 25 } 26 27 private class TypeHolder { 28 String name; 29 int value; 30 public TypeHolder(String name, int value) { 31 this.name = name; 32 this.value = value; 33 } 34 35 public int getValue() { 36 return value; 37 } 38 39 public String toString() { 40 return name; 41 } 42 } 43 44 public DbxrefEditorComponent(Controller controller) { 45 this(controller, -1); 46 } 47 48 public DbxrefEditorComponent(Controller controller, int defaultType) { 49 types.addElement(new TypeHolder("Unknown", Dbxref.UNKNOWN)); 50 types.addElement(new TypeHolder("Anatomical", Dbxref.ANATOMICAL)); 51 types.addElement(new TypeHolder("Analog", Dbxref.ANALOG)); 52 53 this.defaultType = defaultType; 54 55 this.controller = controller; 56 57 dbnameField = new JTextField(2); 58 idField = new JTextField(15); 59 descField = new JTextField(20); 60 typeBox = new JComboBox(types); 61 buildGUI(); 62 attachListeners(); 63 } 64 65 public void buildGUI() { 66 JPanel viewable = new JPanel(); 67 viewable.setOpaque(false); 68 viewable.setLayout(new BoxLayout(viewable, BoxLayout.Y_AXIS)); 69 Font font = controller.getDefaultFont(); 70 71 JLabel dbnameLabel = new JLabel("Database name"); 72 JLabel idLabel = new JLabel("Database id"); 73 JLabel descLabel = new JLabel("Database desc"); 74 JLabel typeLabel = new JLabel("Dbxref type"); 75 dbnameField.setFont(font); 76 idField.setFont(font); 77 descField.setFont(font); 78 typeBox.setFont(font); 79 dbnameLabel.setFont(font); 80 idLabel.setFont(font); 81 descLabel.setFont(font); 82 typeLabel.setFont(font); 83 84 typeBox.setBackground(Color.white); 85 86 idLabel.setAlignmentX(0); 87 dbnameLabel.setAlignmentX(0); 88 descLabel.setAlignmentX(0); 89 typeLabel.setAlignmentX(0); 90 dbnameField.setAlignmentX(0); 91 descField.setAlignmentX(0); 92 typeBox.setAlignmentX(0); 93 idField.setAlignmentX(0); 94 95 96 viewable.add(dbnameLabel); 97 viewable.add(dbnameField); 98 viewable.add(Box.createHorizontalStrut(20)); 99 viewable.add(idLabel); 100 viewable.add(idField); 101 viewable.add(Box.createHorizontalStrut(20)); 102 viewable.add(descLabel); 103 viewable.add(descField); 104 105 if (defaultType == -1) { 106 viewable.add(Box.createHorizontalStrut(20)); 107 viewable.add(typeLabel); 108 viewable.add(typeBox); 109 } 110 111 setLayout(new BorderLayout()); 112 add(viewable, "North"); 113 setOpaque(false); 114 validate(); 115 } 116 117 public void attachListeners() { 118 try { 119 ActionListener commitListener = new ActionListener() { 120 public void actionPerformed(ActionEvent e) { 121 commit(); 122 } 123 }; 124 FocusListener focusListener = new FocusListener() { 125 public void focusGained(FocusEvent e) { 126 } 127 128 public void focusLost(FocusEvent e) { 129 commit(); 130 } 131 }; 132 dbnameField.addActionListener(commitListener); 133 idField.addActionListener(commitListener); 134 descField.addActionListener(commitListener); 135 typeBox.addActionListener(commitListener); 136 dbnameField.addFocusListener(focusListener); 137 idField.addFocusListener(focusListener); 138 descField.addFocusListener(focusListener); 139 } catch (Exception e) { 140 e.printStackTrace(); 141 } 142 } 143 144 public void commit() { 145 editor.doStore(ref); 146 editor.refresh(); 147 } 148 149 public void load(Object o) { 150 ref = (Dbxref) o; 151 dbnameField.setText(ref.getDatabase()); 152 idField.setText(ref.getID()); 153 descField.setText(ref.getDesc()); 154 for(int i=0; i < types.size(); i++) { 155 TypeHolder th = (TypeHolder) types.elementAt(i); 156 if (th.getValue() == ref.getType()) { 157 typeBox.setSelectedIndex(i); 158 break; 159 } 160 } 161 } 162 public void store(Object saveme) { 163 Dbxref ref = (Dbxref) saveme; 164 ref.setDatabase(dbnameField.getText()); 165 ref.setID(idField.getText()); 166 if (descField.getText().length() > 0) 167 ref.setDesc(descField.getText()); 168 if (defaultType == -1) 169 ref.setType(((TypeHolder) typeBox.getSelectedItem()).getValue()); 170 else 171 ref.setType(defaultType); 172 } 173 174 public Object createNewValue() { 175 System.err.println("create new value called"); 176 return new Dbxref("XX", "<new dbxref>"); 177 } 178 }