001    // This file is part of the Attempto Java Packages.
002    // Copyright 2008-2009, Attempto Group, University of Zurich (see http://attempto.ifi.uzh.ch).
003    //
004    // The Attempto Java Packages is free software: you can redistribute it and/or modify it under the
005    // terms of the GNU Lesser General Public License as published by the Free Software Foundation,
006    // either version 3 of the License, or (at your option) any later version.
007    //
008    // The Attempto Java Packages is distributed in the hope that it will be useful, but WITHOUT ANY
009    // WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
010    // PURPOSE. See the GNU Lesser General Public License for more details.
011    //
012    // You should have received a copy of the GNU Lesser General Public License along with the Attempto
013    // Java Packages. If not, see http://www.gnu.org/licenses/.
014    
015    package ch.uzh.ifi.attempto.preditor.example;
016    
017    import ch.uzh.ifi.attempto.chartparser.Terminal;
018    import ch.uzh.ifi.attempto.preditor.MenuCreator;
019    import ch.uzh.ifi.attempto.preditor.text.BasicTextElement;
020    import ch.uzh.ifi.attempto.preditor.text.NounTextElement;
021    
022    /**
023     * This class is an examplary implementation of a menu creator. See the
024     * <a href="{@docRoot}/src-html/ch/uzh/ifi/attempto/preditor/example/ExampleMenuCreator.html#line.1">source code</a>.
025     * 
026     * @author Tobias Kuhn
027     */
028    public class ExampleMenuCreator extends MenuCreator {
029            
030            /**
031             * Creates a new menu creator instance.
032             */
033            public ExampleMenuCreator() {
034            }
035            
036            public void initMenuCreation() {
037                    // Here we can define the order of the menu blocks and whether they should be sorted or not:
038                    prepareMenuBlock("function word", true);
039                    prepareMenuBlock("determiner", true);
040                    prepareMenuBlock("noun", true);
041                    prepareMenuBlock("proper name", true);
042                    prepareMenuBlock("intransitive verb", true);
043                    prepareMenuBlock("transitive verb", true);
044            }
045    
046            public void processCategory(Terminal category) {
047                    String n = category.getName();
048                    
049                    if (n.equals("DET")) {
050                            addMenuEntry("determiner", new BasicTextElement("a", n));
051                            addMenuEntry("determiner", new BasicTextElement("no", n));
052                            addMenuEntry("determiner", new BasicTextElement("every", n));
053                    } else if (n.equals("N")) {
054                            addMenuEntry("noun", new NounTextElement("man", n));
055                            addMenuEntry("noun", new NounTextElement("woman", n));
056                            addMenuEntry("noun", new NounTextElement("human", n));
057                            addMenuEntry("noun", new NounTextElement("dog", n));
058                            addMenuEntry("noun", new NounTextElement("house", n));
059                            addMenuEntry("noun", new NounTextElement("car", n));
060                    } else if (n.equals("PN")) {
061                            addMenuEntry("proper name", new BasicTextElement("John", n));
062                            addMenuEntry("proper name", new BasicTextElement("Bill", n));
063                            addMenuEntry("proper name", new BasicTextElement("Mary", n));
064                            addMenuEntry("proper name", new BasicTextElement("Sue", n));
065                            addMenuEntry("proper name", new BasicTextElement("Tom", n));
066                            addMenuEntry("proper name", new BasicTextElement("Rick", n));
067                            addMenuEntry("proper name", new BasicTextElement("Paul", n));
068                    } else if (n.equals("IV")) {
069                            addMenuEntry("intransitive verb", new BasicTextElement("waits", n));
070                            addMenuEntry("intransitive verb", new BasicTextElement("sleeps", n));
071                            addMenuEntry("intransitive verb", new BasicTextElement("works", n));
072                            addMenuEntry("intransitive verb", new BasicTextElement("eats", n));
073                            addMenuEntry("intransitive verb", new BasicTextElement("drinks", n));
074                    } else if (n.equals("TV")) {
075                            addMenuEntry("transitive verb", new BasicTextElement("sees", n));
076                            addMenuEntry("transitive verb", new BasicTextElement("knows", n));
077                            addMenuEntry("transitive verb", new BasicTextElement("owns", n));
078                            addMenuEntry("transitive verb", new BasicTextElement("uses", n));
079                            addMenuEntry("transitive verb", new BasicTextElement("buys", n));
080                            addMenuEntry("transitive verb", new BasicTextElement("sells", n));
081                            addMenuEntry("transitive verb", new BasicTextElement("drives", n));
082                            addMenuEntry("transitive verb", new BasicTextElement("likes", n));
083                    } else if (n.equals("REF")) {
084                            addReferenceEntries("reference", n);
085                    } else if (n.equals("VAR")) {
086                            addVariableEntries("variable", 10, n);
087                    } else {
088                            addMenuEntry("function word", new BasicTextElement(n));
089                    }
090            }
091    
092    }