Changeset 9201
- Timestamp:
- 2005-02-25T17:29:54+13:00 (19 years ago)
- Location:
- trunk/gli/src/org/greenstone/gatherer
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/gui/NewCollectionMetadataPrompt.java
r8842 r9201 37 37 import org.greenstone.gatherer.Dictionary; 38 38 import org.greenstone.gatherer.Gatherer; 39 import org.greenstone.gatherer.metadata.MetadataElement;40 39 import org.greenstone.gatherer.metadata.MetadataSet; 41 40 import org.greenstone.gatherer.metadata.MetadataSetManager; 42 import org.greenstone.gatherer.metadata.MetadataTools; 41 import org.greenstone.gatherer.util.CheckList; 42 import org.greenstone.gatherer.util.CheckListEntry; 43 43 import org.greenstone.gatherer.util.Utility; 44 44 45 45 46 46 public class NewCollectionMetadataPrompt 47 extends ModalDialog {48 47 extends ModalDialog 48 { 49 49 private boolean cancelled = true; 50 50 private JDialog self; 51 51 private JList elements_list; 52 private MetadataSetListsets_list;52 private CheckList metadata_sets_list; 53 53 static private Dimension size = new Dimension(700, 380); 54 54 … … 70 70 71 71 // Show the metadata sets (except extracted!) available in the GLI "metadata" folder 72 ArrayList sets = MetadataSetManager.listMetadataSets(new File(Utility.METADATA_DIR));72 ArrayList metadata_sets = MetadataSetManager.listMetadataSets(new File(Utility.METADATA_DIR)); 73 73 ArrayList metadata_set_list_entries = new ArrayList(); 74 for (int i = 0; i < sets.size(); i++) {75 MetadataSet metadata_set = (MetadataSet) sets.get(i);74 for (int i = 0; i < metadata_sets.size(); i++) { 75 MetadataSet metadata_set = (MetadataSet) metadata_sets.get(i); 76 76 77 77 // Don't show the extracted metadata set … … 79 79 continue; 80 80 } 81 // Hack: add dublin caore at the top 82 if (metadata_set.getNamespace().equals("dc")) { 83 metadata_set_list_entries.add(0, new MetadataSetListEntry(metadata_set)); 84 } else { 85 metadata_set_list_entries.add(new MetadataSetListEntry(metadata_set)); 86 } 81 82 metadata_set_list_entries.add(metadata_set); 87 83 } 88 84 … … 102 98 sets_list_label.setOpaque(false); 103 99 Dictionary.setText(sets_list_label, "NewCollectionPrompt.Select_MDS"); 104 sets_list = new MetadataSetList(); 105 sets_list.setListData(new Vector(metadata_set_list_entries)); 106 sets_list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 100 metadata_sets_list = new CheckList(true); 101 metadata_sets_list.addListSelectionListener(new MetadataSetListSelectionListener()); 102 metadata_sets_list.setListData(metadata_set_list_entries); 103 metadata_sets_list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); 107 104 108 105 JPanel elements_list_pane = new JPanel(); … … 116 113 elements_list.setSelectionForeground(Configuration.getColor("coloring.collection_tree_foreground", false)); 117 114 118 // Select the Dublin Core metadata set by default, at Ian's request 119 sets_list.selectDublinCoreMetadataSet(); 115 // Set Dublin Core to be ticked initially, at Ian's request 116 for (int i = 0; i < metadata_set_list_entries.size(); i++) { 117 MetadataSet metadata_set = (MetadataSet) metadata_set_list_entries.get(i); 118 if (metadata_set.getMetadataSetFile().getName().equals("dublin.mds")) { 119 metadata_sets_list.setTickedObjects(new Object[] { metadata_set }); 120 } 121 } 120 122 121 123 JPanel button_pane = new JPanel(); … … 138 140 sets_list_pane.setLayout(new BorderLayout()); 139 141 sets_list_pane.add(sets_list_label, BorderLayout.NORTH); 140 sets_list_pane.add(new JScrollPane( sets_list), BorderLayout.CENTER);142 sets_list_pane.add(new JScrollPane(metadata_sets_list), BorderLayout.CENTER); 141 143 142 144 elements_list_pane.setLayout(new BorderLayout()); … … 167 169 168 170 public ArrayList getSets() { 169 return sets_list.getSelectedMetadataSets();171 return metadata_sets_list.getTicked(); 170 172 } 171 173 … … 184 186 185 187 186 private class MetadataSetList 187 extends JList188 private class MetadataSetListSelectionListener 189 implements ListSelectionListener 188 190 { 189 public MetadataSetList()191 public void valueChanged(ListSelectionEvent event) 190 192 { 191 super(); 192 addListSelectionListener(new MetadataSetListSelectionListener()); 193 addMouseListener(new MetadataSetListSelectionListener()); 194 setCellRenderer(new MetadataSetListCellRenderer()); 195 } 196 197 198 public ArrayList getSelectedMetadataSets() 193 if (!metadata_sets_list.isSelectionEmpty()) { 194 // Retrieve the selected set 195 MetadataSet metadata_set = (MetadataSet) ((CheckListEntry) metadata_sets_list.getSelectedValue()).getObject(); 196 elements_list.setListData(new Vector(metadata_set.getMetadataSetElements())); 197 } 198 else { 199 elements_list.setListData(new String[0]); 200 } 201 } 202 } 203 204 205 private class OKButtonListener 206 implements ActionListener 207 { 208 public void actionPerformed(ActionEvent event) 199 209 { 200 ArrayList selected_metadata_sets = new ArrayList();201 202 ListModel model = (ListModel) getModel();203 for (int i = 0; i < model.getSize(); i++) {204 MetadataSetListEntry metadata_set_list_entry = (MetadataSetListEntry) model.getElementAt(i);205 if (metadata_set_list_entry.isSelected()) {206 selected_metadata_sets.add(metadata_set_list_entry.getMetadataSet());207 }208 }209 210 return selected_metadata_sets;211 }212 213 214 /** Hack special-case code, used to select the Dublin Core metadata set by default */215 public void selectDublinCoreMetadataSet()216 {217 ListModel model = (ListModel) getModel();218 for (int i = 0; i < model.getSize(); i++) {219 MetadataSetListEntry metadata_set_list_entry = (MetadataSetListEntry) model.getElementAt(i);220 if (metadata_set_list_entry.getMetadataSet().getNamespace().equals("dc")) {221 metadata_set_list_entry.setSelected(true);222 metadata_set_list_entry.grabFocus();223 setSelectedIndex(i);224 break;225 }226 }227 }228 229 230 private class MetadataSetListCellRenderer231 extends JLabel232 implements ListCellRenderer {233 234 public Component getListCellRendererComponent(JList list, Object value, int index, boolean is_selected, boolean cell_has_focus)235 {236 JCheckBox checkbox = (JCheckBox) value;237 checkbox.setBackground(is_selected ? list.getSelectionBackground() : list.getBackground());238 checkbox.setForeground(is_selected ? list.getSelectionForeground() : list.getForeground());239 checkbox.setBorderPainted(true);240 checkbox.setEnabled(list.isEnabled());241 checkbox.setFont(list.getFont());242 checkbox.setFocusPainted(false);243 checkbox.setBorder((is_selected) ? UIManager.getBorder("List.focusCellHighlightBorder") : new EmptyBorder(1, 1, 1, 1));244 return checkbox;245 }246 }247 248 249 private class MetadataSetListSelectionListener250 extends MouseAdapter251 implements ListSelectionListener {252 253 public void mousePressed(MouseEvent e)254 {255 JList list = (JList) e.getSource();256 int index = list.locationToIndex(e.getPoint());257 MetadataSetListEntry metadata_set_list_entry = (MetadataSetListEntry) list.getModel().getElementAt(index);258 metadata_set_list_entry.setSelected(!metadata_set_list_entry.isSelected());259 metadata_set_list_entry.grabFocus();260 list.ensureIndexIsVisible(index);261 262 // Fire a selection changed event263 fireSelectionValueChanged(index, index, false);264 }265 266 public void valueChanged(ListSelectionEvent event)267 {268 if (!sets_list.isSelectionEmpty()) {269 // Retrieve the selected set270 MetadataSetListEntry metadata_set_list_entry = (MetadataSetListEntry) sets_list.getSelectedValue();271 MetadataSet set = (MetadataSet) metadata_set_list_entry.getMetadataSet();272 elements_list.setListData(new Vector(set.getMetadataSetElements()));273 }274 else {275 elements_list.setListData(new String[0]);276 }277 }278 }279 }280 281 282 private class MetadataSetListEntry283 extends JCheckBox284 {285 private MetadataSet metadata_set = null;286 287 public MetadataSetListEntry(MetadataSet metadata_set)288 {289 this.metadata_set = metadata_set;290 }291 292 public MetadataSet getMetadataSet()293 {294 return metadata_set;295 }296 297 public String getText()298 {299 if (metadata_set == null) {300 return null;301 }302 303 String interface_language_code = Configuration.getLanguage();304 String metadata_set_name = MetadataTools.getMetadataSetAttribute(metadata_set, "Name", interface_language_code, "en");305 return metadata_set_name + " (" + metadata_set.getNamespace() + ")";306 }307 }308 309 310 private class OKButtonListener311 implements ActionListener {312 public void actionPerformed(ActionEvent event) {313 210 // See if the user has selected no metadata sets, and if so confirm thats what they really want. 314 ArrayList selected_sets = sets_list.getSelectedMetadataSets();315 211 cancelled = false; 316 if (selected_sets.size() == 0) {212 if (metadata_sets_list.isNothingTicked()) { 317 213 WarningDialog dialog = new WarningDialog("warning.NoMetadataSetsSelected", null, true); 318 if (dialog.display() == JOptionPane.OK_OPTION) {214 if (dialog.display() == JOptionPane.OK_OPTION) { 319 215 // Otherwise we are free to go 320 216 self.dispose(); -
trunk/gli/src/org/greenstone/gatherer/metadata/MetadataSet.java
r9024 r9201 193 193 public String toString() 194 194 { 195 return MetadataTools.getMetadataSetAttribute(this, "Name", Configuration.getLanguage(), "en") ;195 return MetadataTools.getMetadataSetAttribute(this, "Name", Configuration.getLanguage(), "en") + " (" + metadata_set_namespace + ")"; 196 196 } 197 197
Note:
See TracChangeset
for help on using the changeset viewer.