📄 searchlevel.java
字号:
/* * @(#) SearchLevel.java 1.10 10/09/02 * * Copyright ***, All Rights Reserved. * * This software is the proprietary information of ******** * Use is subject to license terms. * */// import java packages//import java.io.*;import java.lang.*;import java.util.*;import javax.swing.*;import javax.swing.border.*;import java.awt.*;/** * This class is to ..... * ..... * ..... * @version 1.00 * @author Kaihua Huang */public class SearchLevel { //----------------------------------------------------------------- // // instance data members // //----------------------------------------------------------------- // level name // public String level_name_d; // graph names, set to the symbols of the upper levels // public Vector graph_names_d = new Vector(); // this is a index to DiGraph map // public HashMap graphs_d = new HashMap(); public HashMap work_areas_d = new HashMap(); public Vector symbol_types_d = new Vector(); // different symbol tables // public Vector symbols_d = new Vector(); public Vector contexts_d = new Vector(); public Vector non_speech_d = new Vector(); public Vector contextless_d = new Vector(); public Vector dummy_d = new Vector(); public Vector skip_d = new Vector(); public Vector exclude_d = new Vector(); public Vector ST_d = new Vector(); // ui elements // public JPanel jGraphPane = new JPanel(); public JScrollPane jWorkPane = new JScrollPane(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); //public Vector context_d; //public Map grammar_graph_map_d; //----------------------------------------------------------------- // // function members // //----------------------------------------------------------------- /** * check errors in the model * * @return a flag indicate the status */ public boolean check(String prefix_a, String msg_a) { // print message // CData.error_message_d += prefix_a + msg_a + "\n"; // checking the symbols // if (symbols_d.size() == 0) { CData.error_message_d += prefix_a + CData.ERR_LEVEL_NO_SYMBOLS + "\n"; CData.err_flag_d = true; return false; } // checking the graph names // if (graph_names_d.size() == 0) { CData.error_message_d += prefix_a + CData.ERR_LEVEL_NO_GRAPHS + "\n"; CData.err_flag_d = true; return false; } // store all graph names and graphs // for (int i= 0; i < graph_names_d.size(); i++) { String graph_name = (String)graph_names_d.get(i); DiGraph curr_graph = (DiGraph)graphs_d.get(graph_name); if ( curr_graph == null ){ CData.error_message_d += prefix_a + "no graph defined for: " + graph_name + "\n"; CData.err_flag_d = true; return false; } String prefix = prefix_a + CData.PREFIX_INDENT; String message = "checking graph: " + graph_name; System.out.println(prefix + message); if ( !curr_graph.check(prefix, message)){ return false; } } return true; } /** * init the global data * * @param none * @return void */ public void init() { // set the layout for the border // jGraphPane.setLayout(new BorderLayout()); //jGraphPane.setPreferredSize(new Dimension(6, 10)); jGraphPane.setLayout(new BorderLayout()); jGraphPane.add(jWorkPane, BorderLayout.CENTER); // set the dimensions of the scroller // //jWorkPane.setBackground(Color.white); } /** * init the global data * * @param none * @return void */ public void setWorkArea(WorkArea work_area_a) { // set the layout for the border // jGraphPane.removeAll(); //jGraphPane.setPreferredSize(new Dimension(10, 40)); //jGraphPane.setLayout(new BorderLayout()); JScrollPane jWorkPane = new JScrollPane(work_area_a, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); jGraphPane.add(jWorkPane, BorderLayout.CENTER); jGraphPane.revalidate(); // set the dimensions of the scroller // //jWorkPane.setBackground(Color.white); } /** * isNonSpeechSymbol * * @param none * @return void */ public boolean isNonSpeechSymbol(String symbol_a) { if ( non_speech_d.indexOf(symbol_a) >= 0 ){ return true; } return false; } /** * isDummySymbol * * @param none * @return void */ public boolean isDummySymbol(String symbol_a) { if ( dummy_d.indexOf(symbol_a) >= 0 ){ return true; } return false; } /** * isContextLessSymbol * * @param none * @return void */ public boolean isContextLessSymbol(String symbol_a) { if ( contextless_d.indexOf(symbol_a) >= 0 ){ return true; } return false; } /** * isDummySymbol * * @param none * @return void */ public boolean isSkipSymbol(String symbol_a) { if ( skip_d.indexOf(symbol_a) >= 0 ){ return true; } return false; } /** * isExcludeSymbol * * @param none * @return void */ public boolean isExcludeSymbol(String symbol_a) { if ( exclude_d.indexOf(symbol_a) >= 0 ){ return true; } return false; } /** * isSTSymbol * * @param none * @return void */ public boolean isSTSymbol(String symbol_a) { if ( ST_d.indexOf(symbol_a) >= 0 ){ return true; } return false; } /** * sortSymbols * * @param none * @return void */ public boolean sortSymbols() { Object[] symbols = symbols_d.toArray(); Arrays.sort(symbols); symbols_d.clear(); for ( int i = 0; i < symbols.length; i++ ){ symbols_d.add((String)symbols[i]); } return true; } /** * store this level * * @return void */ public void store(String prefix_a) { // get the io to set properties // Properties io = CData.io_d; // tags // String level_name_tag = prefix_a + CData.IO_LEVEL_NAME; String level_graph_size_tag = prefix_a + CData.IO_LEVEL_GRAPH_SIZE; // store symbol table // String level_symbol_size_tag = prefix_a + CData.IO_LEVEL_SYMBOL_SIZE; String level_symbol_tag = prefix_a + CData.IO_LEVEL_SYMBOL; CData.storeSymbols(symbols_d, level_symbol_size_tag, level_symbol_tag); // store context table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_CONTEXT_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_CONTEXT; CData.storeSymbols(contexts_d, level_symbol_size_tag, level_symbol_tag); // store non_speech table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_NON_SPEECH_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_NON_SPEECH_SYMBOL; CData.storeSymbols(non_speech_d, level_symbol_size_tag, level_symbol_tag); // store context_less table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_CONTEXTLESS_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_CONTEXTLESS_SYMBOL; CData.storeSymbols(contextless_d, level_symbol_size_tag, level_symbol_tag); // store dummy table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_DUMMY_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_DUMMY_SYMBOL; CData.storeSymbols(dummy_d, level_symbol_size_tag, level_symbol_tag); // store skip table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_SKIP_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_SKIP_SYMBOL; CData.storeSymbols(skip_d, level_symbol_size_tag, level_symbol_tag); // store exclude table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_EXCLUDE_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_EXCLUDE_SYMBOL; CData.storeSymbols(exclude_d, level_symbol_size_tag, level_symbol_tag); // store ST table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_ST_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_ST_SYMBOL; CData.storeSymbols(ST_d, level_symbol_size_tag, level_symbol_tag); // values // String graph_size = String.valueOf(graph_names_d.size()); // store all data members // io.setProperty(level_name_tag, level_name_d); io.setProperty(level_graph_size_tag, graph_size); // store all graph names and graphs // for (int i= 0; i < graph_names_d.size(); i++) { String graph_name = (String)graph_names_d.get(i); String prefix = prefix_a + CData.IO_LEVEL_GRAPH_NAME + String.valueOf(i); io.setProperty(prefix, graph_name); String graph_prefix = prefix_a + CData.IO_DIGRAPH_PREFIX + String.valueOf(i); DiGraph curr_graph = (DiGraph)graphs_d.get(graph_name); if ( curr_graph == null ){ curr_graph = new DiGraph(); graphs_d.put(graph_name, curr_graph); } curr_graph.store(graph_prefix); } } /** * load this level * * @return void */ public void load(String prefix_a) { // get the io to set properties // Properties io = CData.io_d; // tags // String level_name_tag = prefix_a + CData.IO_LEVEL_NAME; String level_graph_size_tag = prefix_a + CData.IO_LEVEL_GRAPH_SIZE; // values // String graph_size; int g_size; // load symbol table // String level_symbol_size_tag = prefix_a + CData.IO_LEVEL_SYMBOL_SIZE; String level_symbol_tag = prefix_a + CData.IO_LEVEL_SYMBOL; CData.loadSymbols(symbols_d, level_symbol_size_tag, level_symbol_tag); // load context table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_CONTEXT_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_CONTEXT; CData.loadSymbols(contexts_d, level_symbol_size_tag, level_symbol_tag); // load non_speech table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_NON_SPEECH_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_NON_SPEECH_SYMBOL; CData.loadSymbols(non_speech_d, level_symbol_size_tag, level_symbol_tag); // load context_less table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_CONTEXTLESS_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_CONTEXTLESS_SYMBOL; CData.loadSymbols(contextless_d, level_symbol_size_tag, level_symbol_tag); // load dummy table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_DUMMY_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_DUMMY_SYMBOL; CData.loadSymbols(dummy_d, level_symbol_size_tag, level_symbol_tag); // load skip table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_SKIP_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_SKIP_SYMBOL; CData.loadSymbols(skip_d, level_symbol_size_tag, level_symbol_tag); // load exclude table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_EXCLUDE_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_EXCLUDE_SYMBOL; CData.loadSymbols(exclude_d, level_symbol_size_tag, level_symbol_tag); // load ST table // level_symbol_size_tag = prefix_a + CData.IO_LEVEL_ST_SYMBOL_SIZE; level_symbol_tag = prefix_a + CData.IO_LEVEL_ST_SYMBOL; CData.loadSymbols(ST_d, level_symbol_size_tag, level_symbol_tag); // load all data members // level_name_d = io.getProperty(level_name_tag); graph_size = io.getProperty(level_graph_size_tag); g_size = Integer.valueOf(graph_size).intValue(); // load all graphs // for (int i= 0; i < g_size; i++) { String prefix = prefix_a + CData.IO_LEVEL_GRAPH_NAME + String.valueOf(i); String graph_name = io.getProperty(prefix); graph_names_d.add(graph_name); String graph_prefix = prefix_a + CData.IO_DIGRAPH_PREFIX + String.valueOf(i); DiGraph curr_graph = new DiGraph(); curr_graph.load(graph_prefix); graphs_d.put(graph_name, curr_graph); } // initialize the search level // init(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -