1
14 package demo.view.rendering;
15
16 import demo.view.DemoBase;
17 import y.option.EnumOptionItem;
18 import y.option.MappedListCellRenderer;
19 import y.option.OptionHandler;
20 import y.view.DefaultBackgroundRenderer;
21 import y.view.EdgeRealizer;
22 import y.view.LineType;
23
24 import javax.swing.AbstractAction;
25 import javax.swing.DefaultListCellRenderer;
26 import javax.swing.JToolBar;
27 import java.awt.Color;
28 import java.awt.Dimension;
29 import java.awt.event.ActionEvent;
30 import java.util.Hashtable;
31
32
36
37 public class BackgroundDemo extends DemoBase
38 {
39 DefaultBackgroundRenderer renderer;
40
41 final static String bgImages[] = {
42 "resource/yWorksBig.png",
43 "resource/yWorksSmall.gif",
44 "resource/usamap.gif",
45 "resource/ySplash.jpg",
46 "resource/tile.jpg",
47 "<NONE>"
48 };
49
50
51 public BackgroundDemo()
52 {
53 renderer = new DefaultBackgroundRenderer(view);
54 renderer.setImageResource(getClass().getResource(bgImages[0]));
55 renderer.setMode(DefaultBackgroundRenderer.CENTERED);
56 renderer.setColor(Color.white);
57 view.setBackgroundRenderer(renderer);
58 view.setPreferredSize(new Dimension(600,400));
59
60 view.setWorldRect(0,0,1000,1000);
61
62 EdgeRealizer er = view.getGraph2D().getDefaultEdgeRealizer();
64 er.setLineType(LineType.LINE_2);
65 }
66
67
71 protected JToolBar createToolBar()
72 {
73 JToolBar bar = super.createToolBar();
74 bar.addSeparator();
75 bar.add(new ChangeBackground());
76 return bar;
77 }
78
79
83 class ChangeBackground extends AbstractAction
84 {
85
86 OptionHandler op;
87 Hashtable xlate;
88
89 ChangeBackground()
90 {
91 super("Background");
92 xlate = new Hashtable(11);
93 xlate.put(new Byte(DefaultBackgroundRenderer.FULLSCREEN),"Fullscreen");
94 xlate.put(new Byte(DefaultBackgroundRenderer.TILED), "Tiled");
95 xlate.put(new Byte(DefaultBackgroundRenderer.BRICKED), "Bricked");
96 xlate.put(new Byte(DefaultBackgroundRenderer.CENTERED), "Centered");
97 xlate.put(new Byte(DefaultBackgroundRenderer.PLAIN), "Plain");
98 xlate.put(new Byte(DefaultBackgroundRenderer.DYNAMIC), "Dynamic");
99 }
100
101 public void actionPerformed(ActionEvent e)
102 {
103 if(op == null)
104 {
105 op = new OptionHandler("Background");
106 op.addEnum("Mode",
107 xlate.keySet().toArray(),
108 new Byte(renderer.getMode()),
109 new MappedListCellRenderer(xlate));
110 op.addColor("Color",renderer.getColor());
111 op.addEnum("Image",bgImages,0)
112 .setAttribute(EnumOptionItem.ATTRIBUTE_RENDERER,
114 new DefaultListCellRenderer());
115 }
116
117 String oldImage = op.getString("Image");
118
119 if(op.showEditor())
120 {
121 renderer.setMode(((Byte)op.get("Mode")).byteValue());
122 renderer.setColor((Color)op.get("Color"));
123 String imageSrc = op.getString("Image");
124 if(imageSrc.equals("<NONE>"))
125 renderer.setImage(null);
126 else
127 renderer.setImageResource(this.getClass().getResource(imageSrc));
128 view.updateView();
129 }
130 }
131 }
132
133 public static void main(String args[])
134 {
135 BackgroundDemo demo = new BackgroundDemo();
136 demo.start("Background Demo");
137 }
138 }
139
140
141
142