Changeset 4541
- Timestamp:
- 2003-06-10T15:43:45+12:00 (21 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/valuetree/GValueTree.java
r4455 r4541 47 47 import org.greenstone.gatherer.gui.SmarterTextArea; 48 48 import org.greenstone.gatherer.msm.ElementWrapper; 49 import org.greenstone.gatherer.msm.Metadata;50 49 import org.greenstone.gatherer.util.Utility; 51 50 /** … … 58 57 private boolean ignore_tree_selection_event = false; 59 58 private boolean manual_text_edit_event; 60 private JPanel center_pane;61 59 private CardLayout card_layout; 60 private String card_showing = null; 62 61 /** The metadata element that is currently selected. */ 63 62 private ElementWrapper selected_metadata_element = null; 64 63 private GValueModel vm; 65 private JTextArea auto_message;64 private JTextArea extracted_message; 66 65 private JTextField value; 67 66 private JTree tree; … … 81 80 82 81 setFont(Gatherer.config.getFont("general.font", false)); 83 84 Dimension size = new Dimension(width, height); 85 setPreferredSize(size); 86 87 center_pane = new JPanel(); 88 89 card_layout = new CardLayout(); 90 91 JPanel auto_pane = new JPanel(); 92 args[0] = "Title"; 93 auto_message = new SmarterTextArea(get("AutoMessage", args), false); 94 auto_message.setLineWrap(true); 95 auto_message.setOpaque(false); 96 auto_message.setWrapStyleWord(true); 97 98 JPanel tree_pane = new JPanel(); 99 100 JLabel tree_label = new JLabel(get("Tree")); 101 102 tree = new JTree(new GValueModel()); 103 tree.addTreeSelectionListener(this); 104 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 105 tree.setRootVisible(true); 106 tree.putClientProperty("JTree.lineStyle", "Angled"); 82 setPreferredSize(new Dimension(width, height)); 83 84 JPanel metadata_pane = new JPanel(); 107 85 108 86 JPanel value_pane = new JPanel(); … … 118 96 JPanel button_pane = new JPanel(); 119 97 98 JPanel tree_pane = new JPanel(); 99 JLabel tree_label = new JLabel(get("Tree")); 100 101 tree = new JTree(new GValueModel()); 102 tree.addTreeSelectionListener(this); 103 tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 104 tree.setRootVisible(false); 105 tree.putClientProperty("JTree.lineStyle", "Angled"); 106 107 JPanel extracted_pane = new JPanel(); 108 extracted_message = new SmarterTextArea("", false); 109 extracted_message.setLineWrap(true); 110 extracted_message.setOpaque(false); 111 extracted_message.setWrapStyleWord(true); 112 113 card_layout = new CardLayout(); 114 120 115 // Layout 121 tree_pane.setLayout(new BorderLayout()); 122 tree_pane.add(tree_label, BorderLayout.NORTH); 123 tree_pane.add(new JScrollPane(tree), BorderLayout.CENTER); 124 125 auto_pane.setBorder(BorderFactory.createEmptyBorder(25,10,25,10)); 126 auto_pane.setLayout(new BorderLayout()); 127 auto_pane.add(auto_message, BorderLayout.CENTER); 128 129 center_pane.setBorder(BorderFactory.createEmptyBorder(2,0,2,0)); 130 center_pane.setLayout(card_layout); 131 center_pane.add(tree_pane, TREE); 132 center_pane.add(auto_pane, NONE); 116 117 value_field_pane.setBorder(BorderFactory.createEmptyBorder(0,0,0,5)); 118 value_field_pane.setLayout(new BorderLayout(0, 0)); 119 value_field_pane.add(value, BorderLayout.CENTER); 133 120 134 121 button_pane.setBorder(BorderFactory.createEmptyBorder(5,0,0,0)); … … 137 124 button_pane.add(update); 138 125 button_pane.add(remove); 139 140 value_field_pane.setBorder(BorderFactory.createEmptyBorder(0,0,0,5));141 value_field_pane.setLayout(new BorderLayout(0, 0));142 value_field_pane.add(value, BorderLayout.CENTER);143 126 144 127 value_pane.setBorder(BorderFactory.createEmptyBorder(0,0,5,0)); … … 149 132 value_pane.add(button_pane, BorderLayout.SOUTH); 150 133 134 tree_pane.setLayout(new BorderLayout()); 135 tree_pane.add(tree_label, BorderLayout.NORTH); 136 tree_pane.add(new JScrollPane(tree), BorderLayout.CENTER); 137 138 metadata_pane.setLayout(new BorderLayout()); 139 metadata_pane.add(value_pane, BorderLayout.NORTH); 140 metadata_pane.add(tree_pane, BorderLayout.CENTER); 141 142 extracted_pane.setBorder(BorderFactory.createEmptyBorder(25,10,25,10)); 143 extracted_pane.setLayout(new BorderLayout()); 144 extracted_pane.add(extracted_message, BorderLayout.CENTER); 145 151 146 this.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); 152 this.setLayout(new BorderLayout()); 153 this.add(value_pane, BorderLayout.NORTH); 154 this.add(center_pane, BorderLayout.CENTER); 147 this.setLayout(card_layout); 148 this.add(metadata_pane, TREE); 149 this.add(extracted_pane, NONE); 150 card_showing = TREE; 155 151 } 156 152 … … 168 164 public String getSelectedValue() { 169 165 return value.getText(); 170 }171 172 173 public void setRootVisible(boolean val) {174 tree.setRootVisible(val);175 166 } 176 167 … … 181 172 if (element == null) { 182 173 selected_metadata_element = null; 183 setTreeEnabled(false);184 174 return; 185 175 } … … 205 195 selected_metadata_element = element; 206 196 vm = Gatherer.c_man.getCollection().msm.getValueTree(element); 207 setTreeEnabled(true);208 197 tree.setModel(vm); 198 199 // Special case the extracted metadata set 200 if (selected_metadata_element.getNamespace().equals("")) { 201 // Display the panel showing the "you cannot edit this metadata" message 202 args[0] = selected_metadata_element.toString(); 203 ((SmarterTextArea) extracted_message).systemSetText(get("AutoMessage", args)); 204 card_layout.show(this, NONE); 205 card_showing = NONE; 206 } 207 else { 208 // Display the panel for viewing and assigning metadata 209 card_layout.show(this, TREE); 210 card_showing = TREE; 211 } 209 212 } 210 213 … … 227 230 // updating the tree is handled there (DocumentListenerImpl::validate()) 228 231 // System.err.println("Setting selected value to: " + val); 229 manual_text_edit_event = val.equals(""); // Set to false unless val == "" 230 value.setText(Utility.stripNL(val)); 231 value.setCaretPosition(0); 232 manual_text_edit_event = true; 232 if (!card_showing.equals(NONE)) { 233 manual_text_edit_event = val.equals(""); // Set to false unless val == "" 234 value.setText(Utility.stripNL(val)); 235 value.setCaretPosition(0); 236 manual_text_edit_event = true; 237 } 233 238 } 234 239 … … 243 248 } 244 249 return Gatherer.dictionary.get(key,args); 245 }246 247 248 private void setTreeEnabled(boolean value) {249 tree.setRootVisible(!value);250 tree.setEnabled(value);251 if(value) {252 card_layout.show(center_pane, TREE);253 }254 else {255 Metadata selected_metadata = metaedit.getSelectedMetadata();256 if(selected_metadata != null && selected_metadata.getElement() != null) {257 args[0] = selected_metadata.getElement().toString();258 }259 else {260 args[0] = "";261 }262 ((SmarterTextArea)auto_message).systemSetText(get("AutoMessage", args));263 card_layout.show(center_pane, NONE);264 }265 250 } 266 251
Note:
See TracChangeset
for help on using the changeset viewer.