Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }