Gridarta Editor
Location.java
Go to the documentation of this file.
1 /*
2  * Gridarta MMORPG map editor for Crossfire, Daimonin and similar games.
3  * Copyright (C) 2000-2023 The Gridarta Developers.
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License along
16  * with this program; if not, write to the Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18  */
19 
20 package net.sf.gridarta.gui.utils.borderpanel;
21 
22 import java.awt.BorderLayout;
23 import javax.swing.AbstractButton;
24 import javax.swing.BoxLayout;
25 import javax.swing.JSplitPane;
26 import javax.swing.JToggleButton;
27 import org.jetbrains.annotations.NotNull;
28 
33 public enum Location {
34 
38  TOP {
39  @NotNull
40  @Override
41  public AbstractButton createButton(@NotNull final String title) {
42  return new JToggleButton(title);
43  }
44 
45  @NotNull
46  @Override
47  public String getBorderLocation() {
48  return BorderLayout.NORTH;
49  }
50 
51  @NotNull
52  @Override
53  public String getBorderLocationStandardLocation() {
54  return BorderLayout.WEST;
55  }
56 
57  @NotNull
58  @Override
59  public String getBorderLocationAlternativeLocation() {
60  return BorderLayout.EAST;
61  }
62 
63  @Override
64  public int getAxis() {
65  return BoxLayout.X_AXIS;
66  }
67 
68  @Override
69  public int getSplitPaneOrientation() {
70  return JSplitPane.VERTICAL_SPLIT;
71  }
72 
73  @Override
74  public int getSplitPaneOppositeOrientation() {
75  return JSplitPane.HORIZONTAL_SPLIT;
76  }
77 
78  @Override
79  public double getSplitPaneResizeWeight() {
80  return 0.0;
81  }
82 
83  @Override
84  public boolean isTopOrLeft() {
85  return true;
86  }
87 
88  @Override
89  public boolean isTopOrBottom() {
90  return true;
91  }
92 
93  @NotNull
94  @Override
95  public String getName() {
96  return "Top";
97  }
98 
99  },
100 
104  BOTTOM {
105  @NotNull
106  @Override
107  public AbstractButton createButton(@NotNull final String title) {
108  return new JToggleButton(title);
109  }
110 
111  @NotNull
112  @Override
113  public String getBorderLocation() {
114  return BorderLayout.SOUTH;
115  }
116 
117  @NotNull
118  @Override
119  public String getBorderLocationStandardLocation() {
120  return BorderLayout.WEST;
121  }
122 
123  @NotNull
124  @Override
125  public String getBorderLocationAlternativeLocation() {
126  return BorderLayout.EAST;
127  }
128 
129  @Override
130  public int getAxis() {
131  return BoxLayout.X_AXIS;
132  }
133 
134  @Override
135  public int getSplitPaneOrientation() {
136  return JSplitPane.VERTICAL_SPLIT;
137  }
138 
139  @Override
140  public int getSplitPaneOppositeOrientation() {
141  return JSplitPane.HORIZONTAL_SPLIT;
142  }
143 
144  @Override
145  public double getSplitPaneResizeWeight() {
146  return 1.0;
147  }
148 
149  @Override
150  public boolean isTopOrLeft() {
151  return false;
152  }
153 
154  @Override
155  public boolean isTopOrBottom() {
156  return true;
157  }
158 
159  @NotNull
160  @Override
161  public String getName() {
162  return "Bottom";
163  }
164 
165  },
166 
170  LEFT {
171  @NotNull
172  @Override
173  public AbstractButton createButton(@NotNull final String title) {
174  return new VerticalToggleButton(title, false);
175  }
176 
177  @NotNull
178  @Override
179  public String getBorderLocation() {
180  return BorderLayout.WEST;
181  }
182 
183  @NotNull
184  @Override
185  public String getBorderLocationStandardLocation() {
186  return BorderLayout.NORTH;
187  }
188 
189  @NotNull
190  @Override
191  public String getBorderLocationAlternativeLocation() {
192  return BorderLayout.SOUTH;
193  }
194 
195  @Override
196  public int getAxis() {
197  return BoxLayout.Y_AXIS;
198  }
199 
200  @Override
201  public int getSplitPaneOrientation() {
202  return JSplitPane.HORIZONTAL_SPLIT;
203  }
204 
205  @Override
206  public int getSplitPaneOppositeOrientation() {
207  return JSplitPane.VERTICAL_SPLIT;
208  }
209 
210  @Override
211  public double getSplitPaneResizeWeight() {
212  return 0.0;
213  }
214 
215  @Override
216  public boolean isTopOrLeft() {
217  return true;
218  }
219 
220  @Override
221  public boolean isTopOrBottom() {
222  return false;
223  }
224 
225  @NotNull
226  @Override
227  public String getName() {
228  return "Left";
229  }
230 
231  },
232 
236  RIGHT {
237  @NotNull
238  @Override
239  public AbstractButton createButton(@NotNull final String title) {
240  return new VerticalToggleButton(title, true);
241  }
242 
243  @NotNull
244  @Override
245  public String getBorderLocation() {
246  return BorderLayout.EAST;
247  }
248 
249  @NotNull
250  @Override
251  public String getBorderLocationStandardLocation() {
252  return BorderLayout.NORTH;
253  }
254 
255  @NotNull
256  @Override
257  public String getBorderLocationAlternativeLocation() {
258  return BorderLayout.SOUTH;
259  }
260 
261  @Override
262  public int getAxis() {
263  return BoxLayout.Y_AXIS;
264  }
265 
266  @Override
267  public int getSplitPaneOrientation() {
268  return JSplitPane.HORIZONTAL_SPLIT;
269  }
270 
271  @Override
272  public int getSplitPaneOppositeOrientation() {
273  return JSplitPane.VERTICAL_SPLIT;
274  }
275 
276  @Override
277  public double getSplitPaneResizeWeight() {
278  return 1.0;
279  }
280 
281  @Override
282  public boolean isTopOrLeft() {
283  return false;
284  }
285 
286  @Override
287  public boolean isTopOrBottom() {
288  return false;
289  }
290 
291  @NotNull
292  @Override
293  public String getName() {
294  return "Right";
295  }
296 
297  };
298 
304  @NotNull
305  public abstract AbstractButton createButton(@NotNull String title);
306 
311  @NotNull
312  public abstract String getBorderLocation();
313 
319  @NotNull
320  public abstract String getBorderLocationStandardLocation();
321 
327  @NotNull
328  public abstract String getBorderLocationAlternativeLocation();
329 
334  public abstract int getAxis();
335 
340  public abstract int getSplitPaneOrientation();
341 
346  public abstract int getSplitPaneOppositeOrientation();
347 
352  public abstract double getSplitPaneResizeWeight();
353 
358  public abstract boolean isTopOrLeft();
359 
364  public abstract boolean isTopOrBottom();
365 
370  @NotNull
371  public abstract String getName();
372 
373 }
net.sf.gridarta.gui.utils.borderpanel.Location
A location.
Definition: Location.java:33