Changeset 12644 for trunk/gli/src/org/greenstone/gatherer
- Timestamp:
- 2006-09-01T12:13:59+12:00 (18 years ago)
- Location:
- trunk/gli/src/org/greenstone/gatherer
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/gli/src/org/greenstone/gatherer/Gatherer.java
r12642 r12644 38 38 import org.greenstone.gatherer.Configuration; 39 39 import org.greenstone.gatherer.GAuthenticator; 40 import org.greenstone.gatherer.cdm.ClassifierManager;41 40 import org.greenstone.gatherer.collection.CollectionManager; 42 41 import org.greenstone.gatherer.feedback.ActionRecorderDialog; … … 44 43 import org.greenstone.gatherer.file.FileAssociationManager; 45 44 import org.greenstone.gatherer.file.RecycleBin; 45 import org.greenstone.gatherer.greenstone.Classifiers; 46 46 import org.greenstone.gatherer.greenstone.Plugins; 47 47 import org.greenstone.gatherer.gui.GUIManager; … … 436 436 437 437 // Get a list of the core Greenstone classifiers and plugins 438 Classifier Manager.loadClassifiersList();438 Classifiers.loadClassifiersList(); 439 439 Plugins.loadPluginsList(); 440 440 } -
trunk/gli/src/org/greenstone/gatherer/cdm/Classifier.java
r12635 r12644 29 29 import java.io.*; 30 30 import java.util.*; 31 import org.greenstone.gatherer.greenstone.Classifiers; 31 32 import org.greenstone.gatherer.util.StaticStrings; 32 33 import org.greenstone.gatherer.util.Utility; … … 61 62 String classifier_name = element.getAttribute(StaticStrings.TYPE_ATTRIBUTE); 62 63 // Determine the base classifier from the classifier name 63 Classifier base_classifier = Classifier Manager.getClassifier(classifier_name, true);64 Classifier base_classifier = Classifiers.getClassifier(classifier_name, true); 64 65 Classifier classifier = new Classifier(element, base_classifier); 65 66 if (base_classifier == null) { -
trunk/gli/src/org/greenstone/gatherer/cdm/ClassifierManager.java
r12641 r12644 41 41 import org.greenstone.gatherer.Gatherer; 42 42 import org.greenstone.gatherer.LocalGreenstone; 43 import org.greenstone.gatherer.greenstone.Classifiers; 43 44 import org.greenstone.gatherer.gui.DesignPaneHeader; 44 45 import org.greenstone.gatherer.gui.GComboBox; … … 59 60 extends DOMProxyListModel 60 61 { 61 // A list of all the classifiers in the core Greenstone "perllib/classify" folder (arguments may not be loaded)62 static private ArrayList core_greenstone_classifiers_list = null;63 64 62 /** The controls for editing the contents of this manager. */ 65 63 private Control controls = null; … … 76 74 DebugStream.println("ClassifierManager: " + getSize() + " classifiers parsed."); 77 75 78 // core_greenstone_classifiers_list = loadClassifiersList();79 80 76 // Force the assigned classifiers to be loaded and cached now 81 77 for (int i = 0; i < getSize(); i++) { … … 83 79 } 84 80 } 85 86 87 // --------------------------------------------------------------------------------------------------------88 81 89 82 … … 94 87 95 88 // Add all the non-abstract core Greenstone classifiers 96 for (int i = 0; i < core_greenstone_classifiers_list.size(); i++) { 97 Classifier classifier = (Classifier) core_greenstone_classifiers_list.get(i); 89 ArrayList classifiers_list = Classifiers.getClassifiersList(); 90 for (int i = 0; i < classifiers_list.size(); i++) { 91 Classifier classifier = (Classifier) classifiers_list.get(i); 98 92 if (!classifier.isAbstract()) { 99 93 available.add(classifier); … … 106 100 return available.toArray(); 107 101 } 108 109 110 static public Classifier getClassifier(String classifier_name, boolean arguments_required)111 {112 for (int i = 0; i < core_greenstone_classifiers_list.size(); i++) {113 Classifier classifier = (Classifier) core_greenstone_classifiers_list.get(i);114 if (classifier.getName().equals(classifier_name)) {115 if (arguments_required) {116 if (classifier.getArguments().size() == 0) {117 loadClassifierInfo(classifier);118 }119 else {120 DebugStream.println("Already loaded arguments for " + classifier_name + "!");121 }122 }123 return classifier;124 }125 }126 127 return null;128 }129 130 131 static private void loadClassifierInfo(Classifier classifier)132 {133 DebugStream.println("Loading arguments for " + classifier.getName() + "...");134 135 // Run classifierfo.pl to get the list of classifiers136 try {137 StringBuffer xml = null;138 if (Gatherer.isGsdlRemote) {139 String classinfo_output = RemoteGreenstoneServer.getScriptOptions("classinfo.pl", "&classifier=" + classifier);140 xml = new StringBuffer(classinfo_output);141 }142 else {143 ArrayList args = new ArrayList();144 if (Utility.isWindows()) {145 args.add(Configuration.perl_path);146 args.add("-S");147 }148 args.add(LocalGreenstone.getBinScriptDirectoryPath() + "classinfo.pl");149 args.add("-xml");150 args.add("-language");151 args.add(Configuration.getLanguage());152 args.add(classifier.getName());153 154 // Run the classinfo.pl process155 Runtime runtime = Runtime.getRuntime();156 Process process = runtime.exec((String[]) args.toArray(new String[] { }));157 InputStream input_stream = process.getErrorStream();158 xml = XMLTools.readXMLStream(input_stream);159 }160 161 if (xml.length() > 0) {162 parseClassifierInfoXML(classifier, xml.toString());163 }164 else {165 JOptionPane.showMessageDialog(Gatherer.g_man, Dictionary.get("CDM.ClassifierManager.Classifier_XML_Parse_Failed", classifier.getName()), Dictionary.get("General.Error"), JOptionPane.ERROR_MESSAGE);166 }167 }168 catch (Exception exception) {169 DebugStream.printStackTrace(exception);170 }171 }172 173 174 static public void loadClassifiersList()175 {176 DebugStream.println("In loadClassifiersList()...");177 178 // Run classifierfo.pl to get the list of classifiers179 try {180 StringBuffer xml = null;181 if (Gatherer.isGsdlRemote) {182 String classinfo_output = RemoteGreenstoneServer.getScriptOptions("classinfo.pl", "&listall");183 xml = new StringBuffer(classinfo_output);184 }185 else {186 ArrayList args = new ArrayList();187 if (Utility.isWindows()) {188 args.add(Configuration.perl_path);189 args.add("-S");190 }191 args.add(LocalGreenstone.getBinScriptDirectoryPath() + "classinfo.pl");192 args.add("-listall");193 args.add("-xml");194 195 // Run the classinfo.pl process196 Runtime runtime = Runtime.getRuntime();197 Process process = runtime.exec((String[]) args.toArray(new String[] { }));198 InputStream input_stream = process.getErrorStream();199 xml = XMLTools.readXMLStream(input_stream);200 }201 202 if (xml.length() > 0) {203 core_greenstone_classifiers_list = parseClassifiersListXML(xml.toString());204 }205 else {206 JOptionPane.showMessageDialog(Gatherer.g_man, Dictionary.get("CDM.ClassifierManager.Classifier_List_XML_Parse_Failed"), Dictionary.get("General.Error"), JOptionPane.ERROR_MESSAGE);207 }208 }209 catch (Exception exception) {210 DebugStream.printStackTrace(exception);211 }212 }213 214 215 static private void parseClassifierInfoXML(Classifier classifier, String xml)216 {217 Document document = XMLTools.parseXML(new StringReader(xml));218 parseClassifierInfoXMLNode(classifier, document.getDocumentElement());219 }220 221 222 static private void parseClassifierInfoXMLNode(Classifier classifier, Node root_node)223 {224 for (Node node = root_node.getFirstChild(); node != null; node = node.getNextSibling()) {225 String node_name = node.getNodeName();226 227 if (node_name.equalsIgnoreCase("Name")) {228 classifier.setName(XMLTools.getValue(node));229 }230 else if (node_name.equals("Desc")) {231 classifier.setDescription(XMLTools.getValue(node));232 }233 else if (node_name.equals("Abstract")) {234 classifier.setIsAbstract(XMLTools.getValue(node).equalsIgnoreCase(StaticStrings.YES_STR));235 }236 // Parse the classifier arguments237 else if (node_name.equalsIgnoreCase("Arguments")) {238 for (Node argument_node = node.getFirstChild(); argument_node != null; argument_node = argument_node.getNextSibling()) {239 // An option240 if (argument_node.getNodeName().equalsIgnoreCase("Option")) {241 Argument argument = new Argument();242 argument.parseXML((Element) argument_node);243 classifier.addArgument(argument);244 }245 }246 }247 // A super classifier class248 else if (node_name.equalsIgnoreCase("ClassInfo")) {249 Classifier super_classifier = new Classifier();250 parseClassifierInfoXMLNode(super_classifier, node);251 classifier.setSuper(super_classifier);252 }253 }254 }255 256 257 static private ArrayList parseClassifiersListXML(String xml)258 {259 ArrayList classifiers_list = new ArrayList();260 261 Document document = XMLTools.parseXML(new StringReader(xml));262 Node root = document.getDocumentElement();263 for (Node node = root.getFirstChild(); node != null; node = node.getNextSibling()) {264 String node_name = node.getNodeName();265 266 if (node_name.equals("ClassInfo")) {267 Classifier classifier = new Classifier();268 parseClassifierInfoXMLNode(classifier, node);269 classifiers_list.add(classifier);270 }271 }272 273 return classifiers_list;274 }275 276 277 // --------------------------------------------------------------------------------------------------------278 102 279 103 … … 591 415 { 592 416 // Retrieve the classifier 593 Classifier classifier = getClassifier(classifier_name, true);417 Classifier classifier = Classifiers.getClassifier(classifier_name, true); 594 418 if (classifier == null) { 595 419 System.err.println("Error: getClassifier() returned null.");
Note:
See TracChangeset
for help on using the changeset viewer.