source: trunk/gli/src/org/greenstone/gatherer/gems/GEMSModel.java@ 8270

Last change on this file since 8270 was 8270, checked in by mdewsnip, 20 years ago

Source files for the Greenstone Editor for Metadata Sets (GEMS). This is currently just the old MetadataEditorManager, modified to run stand-alone. It will be substantially improved by Attila Aros.

  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1/**
2 *#########################################################################
3 *
4 * A component of the Gatherer application, part of the Greenstone digital
5 * library suite from the New Zealand Digital Library Project at the
6 * University of Waikato, New Zealand.
7 *
8 * <BR><BR>
9 *
10 * Author: John Thompson, Greenstone Digital Library, University of Waikato
11 *
12 * <BR><BR>
13 *
14 * Copyright (C) 1999 New Zealand Digital Library Project
15 *
16 * <BR><BR>
17 *
18 * This program is free software; you can redistribute it and/or modify
19 * it under the terms of the GNU General Public License as published by
20 * the Free Software Foundation; either version 2 of the License, or
21 * (at your option) any later version.
22 *
23 * <BR><BR>
24 *
25 * This program is distributed in the hope that it will be useful,
26 * but WITHOUT ANY WARRANTY; without even the implied warranty of
27 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
28 * GNU General Public License for more details.
29 *
30 * <BR><BR>
31 *
32 * You should have received a copy of the GNU General Public License
33 * along with this program; if not, write to the Free Software
34 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
35 *########################################################################
36 */
37package org.greenstone.gatherer.gems;
38
39import javax.swing.tree.DefaultTreeModel;
40import org.greenstone.gatherer.util.SynchronizedTreeModelTools;
41/**
42 * @author John Thompson, Greenstone Digital Library, University of Waikato
43 * @version 2.3
44 */
45public class GEMSModel
46 extends DefaultTreeModel {
47
48 public GEMSModel() {
49 super(new GEMSNode());
50 }
51
52 public void add(GEMSNode parent, Object object, int type) {
53 if(parent == null) {
54 parent = (GEMSNode) root;
55 }
56 GEMSNode new_node = new GEMSNode(type, object, null);
57 SynchronizedTreeModelTools.insertNodeInto(this, parent, new_node);
58 }
59
60 public GEMSNode getProfileNode() {
61 GEMSNode node = (GEMSNode) root;
62 return (GEMSNode) node.getChildAt(node.getChildCount() - 1);
63 }
64
65 public void remove(String name, int type) {
66 GEMSNode current = (GEMSNode) root;
67 for(int i = 0; i < current.getChildCount(); i++) {
68 GEMSNode child = (GEMSNode) current.getChildAt(i);
69 if(child.toString().equals(name) && type == GEMSNode.SET) {
70 // Place on AWT event thread to avoid errors.
71 SynchronizedTreeModelTools.removeNodeFromParent(this, child);
72 return;
73 }
74 // This may be the profiler root node, in which case we descend into its children if we're looking for collection file matches.
75 else if(type == GEMSNode.COLLECTION && child.getType() == GEMSNode.PROFILER) {
76 for(int j = 0; j < child.getChildCount(); j++) {
77 GEMSNode inner_child = (GEMSNode) child.getChildAt(j);
78 if(inner_child.toString().equals(name)) {
79 // Place on AWT event thread to avoid errors.
80 SynchronizedTreeModelTools.removeNodeFromParent(this, inner_child);
81 return;
82 }
83 }
84 }
85 // If this is a set and we are looking for an element, then iterate through its children. Can't really do this recursively.
86 else if(type == GEMSNode.ELEMENT && child.getType() == GEMSNode.SET) {
87 for(int j = 0; j < child.getChildCount(); j++) {
88 GEMSNode inner_child = (GEMSNode) child.getChildAt(j);
89 if(inner_child.toString().equals(name)) {
90 // Place on AWT event thread to avoid errors.
91 SynchronizedTreeModelTools.removeNodeFromParent(this, inner_child);
92 return;
93 }
94 }
95 }
96 }
97 }
98}
Note: See TracBrowser for help on using the repository browser.