📄 codepositiontree.java
字号:
// **********************************************************************// // <copyright>// // BBN Technologies// 10 Moulton Street// Cambridge, MA 02138// (617) 873-8000// // Copyright (C) BBNT Solutions LLC. All rights reserved.// // </copyright>// **********************************************************************// // $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/tools/symbology/milStd2525/CodePositionTree.java,v $// $RCSfile: CodePositionTree.java,v $// $Revision: 1.5.2.2 $// $Date: 2004/12/08 01:45:38 $// $Author: dietrick $// // **********************************************************************package com.bbn.openmap.tools.symbology.milStd2525;import java.util.Iterator;import java.util.List;import java.util.LinkedList;import java.util.Properties;import com.bbn.openmap.util.Debug;/** * The CodePositionTree is a CodeScheme CodePosition object that has * some intelligence on how to starting building the SymbolPart tree * for the SymbolReferenceLibrary. It knows how to set up CodeOptions * for the different types of CodeSchemes, and starts the parsing of * the hierarchy properties. */public class CodePositionTree extends CodeScheme { public CodePositionTree(Properties positionProperties) { // Read CodeSchemes, build position tree. Then, this // CodePosition can be used to build the hierarchal symbol // tree from the head SymbolPart CodeScheme cs = new CodeScheme(); cs.parsePositions("scheme", positionProperties); // This is needed to parse hierarchy... choices = cs.getPositionChoices(); // parsePositions("scheme", positionProperties); // // This is needed to parse hierarchy... // choices = cs.getPositionChoices(); // Read Optional Flag Positions CodeAffiliation ca = new CodeAffiliation(); ca.parsePositions("affiliation", positionProperties); ca.choices.add(0, ca.getNULLCodePosition()); CodeWarfightingModifier cwm = new CodeWarfightingModifier(); CodeSizeModifier csm = new CodeSizeModifier(); CodeMOOTWModifier cmm = new CodeMOOTWModifier(); cwm.parsePositions("modifiers", positionProperties); cwm.choices.add(0, cwm.getNULLCodePosition()); csm.parsePositions("modifiers", positionProperties); csm.choices.add(0, csm.getNULLCodePosition()); cmm.parsePositions("modifiers", positionProperties); cmm.choices.add(0, cmm.getNULLCodePosition()); CodeStatus cstatus = new CodeStatus(); cstatus.parsePositions("status", positionProperties); cstatus.choices.add(0, cstatus.getNULLCodePosition()); CodeOrderOfBattle coob = new CodeOrderOfBattle(); coob.parsePositions("oob", positionProperties); coob.choices.add(0, coob.getNULLCodePosition()); List basicOptions = new LinkedList(); basicOptions.add(ca); basicOptions.add(cstatus); basicOptions.add(cwm); basicOptions.add(csm); basicOptions.add(cmm); // basicOptions.add(cc); basicOptions.add(coob); setCodeOptions(new CodeOptions(basicOptions)); List warfightingOptions = new LinkedList(); warfightingOptions.add(ca); warfightingOptions.add(cstatus); warfightingOptions.add(cwm); // warfightingOptions.add(cc); // CodeCountry warfightingOptions.add(coob); // Kind of a hack, I know the number is the hierarchy number // of the particular scheme, and that the position.properties // file is setting up the options to reflect that for all of // these code option settings. ((CodeScheme) cs.getFromChoices(1)).setCodeOptions(new CodeOptions(warfightingOptions)); // ((CodeScheme)getFromChoices(1)).setCodeOptions(new // CodeOptions(warfightingOptions)); List tacOptions = new LinkedList(); tacOptions.add(ca); tacOptions.add(cstatus); tacOptions.add(csm); // tacOptions.add(cc); // CodeCountry ((CodeScheme) cs.getFromChoices(2)).setCodeOptions(new CodeOptions(tacOptions)); // ((CodeScheme)getFromChoices(2)).setCodeOptions(new // CodeOptions(tacOptions)); List intelOptions = new LinkedList(); intelOptions.add(ca); intelOptions.add(cstatus); // intelOptions.add(cc); // CodeCountry intelOptions.add(coob); ((CodeScheme) cs.getFromChoices(4)).setCodeOptions(new CodeOptions(intelOptions)); // ((CodeScheme)getFromChoices(4)).setCodeOptions(new // CodeOptions(intelOptions)); List mootwOptions = new LinkedList(); mootwOptions.add(ca); mootwOptions.add(cstatus); mootwOptions.add(cmm); // mootwOptions.add(cc); // CodeCountry mootwOptions.add(coob); ((CodeScheme) cs.getFromChoices(5)).setCodeOptions(new CodeOptions(mootwOptions)); // ((CodeScheme)getFromChoices(5)).setCodeOptions(new // CodeOptions(mootwOptions)); } public SymbolPart parseHierarchy(String name, Properties hierarchyProperties) { List positions = getPositionChoices(); SymbolPartTree head = new SymbolPartTree(name); List subs = new LinkedList(); head.setSubs(subs); for (Iterator it = positions.iterator(); it.hasNext();) { CodeScheme cs = (CodeScheme) it.next(); if (Debug.debugging("symbolpart")) { Debug.output("CodePositionTree: loading " + cs.getPrettyName()); } SymbolPart sp = cs.parseHierarchy(hierarchyProperties, head); if (sp != null) { subs.add(sp); } } return head; }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -