source: trunk/quest-ui-core/src/main/java/de/ugoe/cs/quest/ui/commands/CMDshowTrie.java @ 726

Last change on this file since 726 was 726, checked in by sherbold, 12 years ago
  • added manuals for the commands calcCoverage, calcEntropy, deleteObject, flattenModel, generateFixedLengthSequences, generateGreedy, generateHybrid, generateReplayfile, listSymbols, load, loadObject, modelSize, printDot, printTrieDot, save, saveObject, sequenceStatistics, showMarkovModel, showTime, showTrie, startFileListener, stopFileListener, trainDFA, trainPPM, and updateModel
  • Property svn:mime-type set to text/plain
File size: 3.0 KB
Line 
1package de.ugoe.cs.quest.ui.commands;
2
3import java.awt.Dimension;
4import java.awt.Rectangle;
5import java.awt.Shape;
6import java.security.InvalidParameterException;
7import java.util.List;
8
9import javax.swing.JFrame;
10
11import org.apache.commons.collections15.Transformer;
12
13import de.ugoe.cs.quest.CommandHelpers;
14import de.ugoe.cs.quest.usageprofiles.Trie;
15import de.ugoe.cs.quest.usageprofiles.Trie.Edge;
16import de.ugoe.cs.quest.usageprofiles.Trie.TrieVertex;
17import de.ugoe.cs.quest.usageprofiles.TrieBasedModel;
18import de.ugoe.cs.util.console.Command;
19import de.ugoe.cs.util.console.GlobalDataContainer;
20import edu.uci.ics.jung.algorithms.layout.Layout;
21import edu.uci.ics.jung.algorithms.layout.TreeLayout;
22import edu.uci.ics.jung.graph.Tree;
23import edu.uci.ics.jung.visualization.BasicVisualizationServer;
24import edu.uci.ics.jung.visualization.decorators.ToStringLabeller;
25import edu.uci.ics.jung.visualization.renderers.Renderer.VertexLabel.Position;
26
27/**
28 * <p>
29 * Command that visualizes the {@link Trie} of a {@link TrieBasedModel}.
30 * </p>
31 *
32 * @author Steffen Herbold
33 * @version 1.0
34 */
35public class CMDshowTrie implements Command {
36
37        /*
38         * (non-Javadoc)
39         *
40         * @see de.ugoe.cs.util.console.Command#help()
41         */
42        @Override
43        public String help() {
44                return "showTrie <modelname>";
45        }
46
47        /*
48         * (non-Javadoc)
49         *
50         * @see de.ugoe.cs.util.console.Command#run(java.util.List)
51         */
52        @Override
53        public void run(List<Object> parameters) {
54                String modelname;
55                try {
56                        modelname = (String) parameters.get(0);
57                } catch (Exception e) {
58                        throw new InvalidParameterException();
59                }
60
61                Object dataObject = GlobalDataContainer.getInstance()
62                                .getData(modelname);
63                if (dataObject == null) {
64                        CommandHelpers.objectNotFoundMessage(modelname);
65                        return;
66                }
67                if (!(dataObject instanceof TrieBasedModel)) {
68                        CommandHelpers.objectNotType(modelname, "TrieBasedModel");
69                }
70                TrieBasedModel model = (TrieBasedModel) dataObject;
71                Tree<TrieVertex, Edge> graph = model.getTrieGraph();
72                Layout<TrieVertex, Edge> layout = new TreeLayout<TrieVertex, Edge>(
73                                graph, 60);
74                // The BasicVisualizationServer<V,E> is parameterized by the edge
75                // types
76                BasicVisualizationServer<TrieVertex, Edge> vv = new BasicVisualizationServer<TrieVertex, Edge>(
77                                layout);
78                vv.setPreferredSize(new Dimension(1100, 850)); // Sets the viewing
79                                                                                                                // area size
80
81                final Rectangle rect = new Rectangle(40, 20);
82
83                Transformer<TrieVertex, Shape> vertexShapeTransformer = new Transformer<TrieVertex, Shape>() {
84                        public Shape transform(TrieVertex s) {
85                                return rect;
86                        }
87                };
88                vv.getRenderer().getVertexLabelRenderer().setPosition(Position.CNTR);
89                vv.getRenderContext().setVertexShapeTransformer(vertexShapeTransformer);
90                vv.getRenderContext().setVertexLabelTransformer(
91                                new ToStringLabeller<TrieVertex>());
92
93                JFrame frame = new JFrame("Trie");
94                frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
95                frame.getContentPane().add(vv);
96                frame.pack();
97                frame.setVisible(true);
98        }
99
100}
Note: See TracBrowser for help on using the repository browser.