1
28 package demo.layout.router;
29
30 import y.layout.router.BusRouter;
31 import demo.layout.module.BusRouterModule;
32 import y.option.IntOptionItem;
33 import y.option.OptionGroup;
34 import y.option.OptionHandler;
35 import y.option.OptionItem;
36 import y.option.ResourceBundleGuiFactory;
37
38 import java.util.MissingResourceException;
39
40
44 class BusRouterDemoModule extends BusRouterModule {
45
46 private static final String GROUP_LAYOUT = "GROUP_LAYOUT";
47 private static final String MIN_DISTANCE_TO_NODES = "MIN_DISTANCE_TO_NODES";
48 private static final String MIN_DISTANCE_TO_EDGES = "MIN_DISTANCE_TO_EDGES";
49 private byte scope;
50 private boolean gridRoutingEnabled;
51 private int gridSpacing;
52
53
56 BusRouterDemoModule() {
57 optionsLayout = false;
58 optionsSelection = true;
59 optionsRouting = true;
60 }
61
62
67 protected void addOptionItems(final BusRouter defaults, final OptionHandler options) {
68 OptionItem item;
69 OptionGroup og;
70
71 item = options.addInt(MIN_DISTANCE_TO_NODES, defaults.getMinimumDistanceToNode());
72 item.setAttribute(IntOptionItem.ATTRIBUTE_MIN_VALUE, new Integer(1));
73 item = options.addInt(MIN_DISTANCE_TO_EDGES, defaults.getMinimumDistanceToEdge());
74 item.setAttribute(IntOptionItem.ATTRIBUTE_MIN_VALUE, new Integer(1));
75
76 og = new OptionGroup();
77 og.setAttribute(OptionGroup.ATTRIBUTE_TITLE, GROUP_LAYOUT);
78 og.addItem(options.getItem(MIN_DISTANCE_TO_EDGES));
79 og.addItem(options.getItem(MIN_DISTANCE_TO_NODES));
80
81 defaults.setPreferredBackboneSegmentCount(1);
82 super.addOptionItems(defaults, options);
83 }
84
85
89 protected void initGuiFactory( final OptionHandler optionHandler ) {
90 ResourceBundleGuiFactory gf = new ResourceBundleGuiFactory();
91 try {
92 gf.addBundle(BusRouterModule.class.getName());
93 gf.addBundle(BusRouterDemo.class.getName());
94 } catch (MissingResourceException mre) {
95 }
97 optionHandler.setGuiFactory(gf);
98 }
99
100
106 protected void configure(final BusRouter bus, final OptionHandler options) {
107 super.configure(bus, options);
108
109 bus.setMinimumDistanceToNode(options.getInt(MIN_DISTANCE_TO_NODES));
110 bus.setMinimumDistanceToEdge(options.getInt(MIN_DISTANCE_TO_EDGES));
111
112 bus.setScope(scope);
113 bus.setGridRoutingEnabled(gridRoutingEnabled);
114 bus.setGridSpacing(gridSpacing);
115 }
116
117
118 void setScope(final byte scope) {
119 this.scope = scope;
120 }
121
122 void setGridRoutingEnabled(final boolean gridRoutingEnabled) {
123 this.gridRoutingEnabled = gridRoutingEnabled;
124 }
125
126 void setGridSpacing(final int gridSpacing) {
127 this.gridSpacing = gridSpacing;
128 }
129 }
130