GeomVis  0.1
Набор классов Java для визуализации результатов работы геометрических алгоритмов
CommandBox.java
См. документацию.
1 package control;
2 
3 import java.awt.Color;
4 import java.awt.Dimension;
5 import java.lang.reflect.*;
6 
7 import javax.swing.*;
8 
10 
17 public class CommandBox extends JPanel
18 {
19 
20  private int width = 140;
21  private int heightComponent = 30;
22  private GeomContainer gAllObjects;
23  private boolean autoBuild;
24 
25  public CommandBox(GeomContainer gAllObjects, boolean autoBuild) {
26  this.gAllObjects = gAllObjects;
27  this.autoBuild = autoBuild;
28 
29  setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
30  setBorder(BorderFactory.createEmptyBorder(0, 10, 10, 10));
31  Box.createHorizontalStrut(width);
32 
33  if (this.autoBuild)
34  {
35  Method methods[] = Indicators.class.getMethods();
36 
37 
38  for (Method method : methods)
39  {
40  if (Modifier.isStatic (method.getModifiers()))
41  {
42  this.add(new IndicatorLabel(addSpaces(method.getName()), method.getName(), gAllObjects));
43  }
44  }
45 
46  methods = Commands.class.getMethods();
47 
48  for (Method method : methods)
49  {
50  if (Modifier.isStatic (method.getModifiers()))
51  {
52  this.add(new CommandButton(addSpaces(method.getName()), method.getName(), gAllObjects));
53  }
54  }
55  return;
56  }
57 
58  // ///////////////////////////////////////
59  // ADD INDICATOR LABELS HERE
60  // for static methods from Indicators class
61  // prototype mast be: static String methodName(GeomContainer gObjects)
62  // from Indicator class
63  // //////////////////////////////////////
64 
65  add(new IndicatorLabel("Objects", "size", gAllObjects));
66  add(new IndicatorLabel("Selected", "selectedSize", gAllObjects));
67 
68  // ///////////////////////////////////////
69  // ADD COMMAND BUTTONS HERE
70  // for static methods from Commands class
71  // prototype must be: static void methodName(GeomContainer gObjects)
72  // from Commands class
73  // //////////////////////////////////////
74  this.add(new CommandButton("Clear", "clear", gAllObjects));
75  this.add(new CommandButton("Select All", "selectAll", gAllObjects));
76  this.add(new CommandButton("Deselect All", "deselectAll", gAllObjects));
77  this.add(new CommandButton("Del Last selected", "delLastSelected",
78  gAllObjects));
79  this.add(Box.createVerticalStrut(10));
80  this.add(new CommandButton("Make Line", "makeLine", gAllObjects));
81  this.add(new CommandButton("Cross Lines", "crossLines", gAllObjects));
82  }
83 
87  public void add(JComponent comp)
88  {
89  comp.setPreferredSize(new Dimension(width, heightComponent));
90  comp.setMaximumSize(new Dimension(Short.MAX_VALUE, heightComponent));
91  comp.setMinimumSize(new Dimension(width, heightComponent));
92  super.add(comp);
93  }
94 
95  private String addSpaces(String text)
96  {
97  StringBuffer res = new StringBuffer("");
98  res.append(Character.toUpperCase(text.charAt(0)));
99  for (int i = 1; i < text.length(); i++)
100  {
101  char c = text.charAt(i);
102  if (Character.isUpperCase(c))
103  {
104  res.append(" ");
105  }
106  res.append(c);
107  }
108  return new String(res);
109  }
110 
111 }
Kласс для хранения графических объектов
Панель управляющих виджетов (кнопок вызавающих команды и индикаторов). Виждеты добавляются в конструк...
Definition: CommandBox.java:17
void add(JComponent comp)
добавляет на панель управляющий виджет
Definition: CommandBox.java:87
CommandBox(GeomContainer gAllObjects, boolean autoBuild)
Definition: CommandBox.java:25