20 package net.sf.gridarta.gui.panel.gameobjectattributes;
22 import java.awt.Component;
23 import java.awt.Container;
24 import java.awt.GridBagConstraints;
25 import java.awt.GridBagLayout;
26 import javax.swing.AbstractButton;
27 import javax.swing.ImageIcon;
28 import javax.swing.JCheckBox;
29 import javax.swing.JComponent;
30 import javax.swing.JPanel;
31 import javax.swing.JTextField;
32 import javax.swing.border.TitledBorder;
33 import javax.swing.text.JTextComponent;
49 import net.
sf.japi.swing.action.ActionBuilder;
50 import net.
sf.japi.swing.action.ActionBuilderFactory;
51 import org.jetbrains.annotations.NotNull;
52 import org.jetbrains.annotations.Nullable;
65 private static final ActionBuilder
ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder(
"net.sf.gridarta");
107 private final JPanel
panel =
new JPanel();
119 private static final long serialVersionUID = 1L;
122 protected void direction(@Nullable
final Integer direction) {
123 final int dir = direction ==
null ? 0 : direction;
125 if (gameObject !=
null) {
127 if (mapSquare !=
null) {
174 super(gameObjectAttributesModel);
180 final GridBagLayout gridBagLayout =
new GridBagLayout();
181 final GridBagConstraints gbc =
new GridBagConstraints();
183 panel.setLayout(gridBagLayout);
184 gbc.fill = GridBagConstraints.BOTH;
187 gbc.anchor = GridBagConstraints.NORTHWEST;
194 gridBagLayout.setConstraints(facePanel, gbc);
195 panel.add(facePanel);
202 gridBagLayout.setConstraints(animationPanel, gbc);
203 panel.add(animationPanel);
211 gridBagLayout.setConstraints(directionPanel, gbc);
212 panel.add(directionPanel);
219 refresh(gameObjectAttributesModel.getSelectedGameObject());
223 protected final void refresh(@Nullable
final G gameObject) {
226 final String faceName;
227 if (gameObject ==
null) {
230 final String tmpFaceName = gameObject.getFaceName();
231 if (tmpFaceName ==
null) {
232 faceName =
normalizeFace(gameObject.getArchetype().getFaceName());
244 final String animName;
245 if (gameObject ==
null) {
248 final String tmpAnimName = gameObject.getAnimName();
249 if (tmpAnimName ==
null) {
250 animName =
normalizeFace(gameObject.getArchetype().getAnimName());
262 final boolean animated;
263 if (gameObject ==
null) {
273 final String animSpeed;
274 if (gameObject ==
null) {
284 if (gameObject ==
null || !gameObject.getArchetype().usesDirection()) {
287 direction = gameObject.getDirection();
288 if (severity ==
Severity.
DEFAULT && direction != gameObject.getArchetype().getDirection()) {
321 protected void apply(@NotNull
final G gameObject) {
323 final String faceName2;
324 if (faceName.equals(
"NONE")) {
325 final String archFaceName = gameObject.getArchetype().getFaceName();
326 faceName2 = archFaceName ==
null || archFaceName.isEmpty() ?
"" :
"NONE";
328 faceName2 = faceName;
333 final String animName2;
334 if (animName.equals(
"NONE")) {
335 final String archAnimName = gameObject.getArchetype().getAnimName();
336 animName2 = archAnimName ==
null || archAnimName.isEmpty() ?
"" :
"NONE";
338 animName2 = animName;
350 final String animSpeedAttribute = gameObject.getArchetype().getAttributeString(
BaseObject.
ANIM_SPEED);
351 if (animSpeed.isEmpty() || (animSpeed.equals(
"0") ?
"" : animSpeed).equals(animSpeedAttribute)) {
370 final GridBagLayout gridBagLayout =
new GridBagLayout();
372 final JComponent facePanel =
new JPanel();
373 facePanel.setLayout(gridBagLayout);
376 final GridBagConstraints gbc =
new GridBagConstraints();
378 gbc.fill = GridBagConstraints.HORIZONTAL;
380 gbc.anchor = GridBagConstraints.NORTHWEST;
386 addFiller(gridBagLayout, facePanel, 1, 1);
396 final GridBagLayout gridBagLayout =
new GridBagLayout();
397 final JComponent animationPanel =
new JPanel();
398 animationPanel.setLayout(gridBagLayout);
401 final GridBagConstraints gbc =
new GridBagConstraints();
403 gbc.fill = GridBagConstraints.HORIZONTAL;
405 gbc.anchor = GridBagConstraints.NORTHWEST;
416 gbc.fill = GridBagConstraints.NONE;
422 gridBagLayout.setConstraints(speedLabel, gbc);
423 animationPanel.add(speedLabel);
425 gbc.fill = GridBagConstraints.HORIZONTAL;
431 addFiller(gridBagLayout, animationPanel, 2, 3);
432 return animationPanel;
441 final GridBagLayout gridBagLayout =
new GridBagLayout();
443 final JComponent directionPanel =
new JPanel();
444 directionPanel.setLayout(gridBagLayout);
447 final GridBagConstraints gbc =
new GridBagConstraints();
449 gbc.fill = GridBagConstraints.NONE;
456 addFiller(gridBagLayout, directionPanel, 1, 1);
457 return directionPanel;
467 private static void addFiller(@NotNull
final GridBagLayout gridBagLayout, @NotNull
final Container container,
final int gridWidth,
final int gridY) {
468 final GridBagConstraints gbc =
new GridBagConstraints();
469 gbc.fill = GridBagConstraints.BOTH;
471 gbc.gridwidth = gridWidth;
473 final Component filler =
new JPanel();
474 gridBagLayout.setConstraints(filler, gbc);
475 container.add(filler);
486 return value ==
null || value.isEmpty() ?
"NONE" : value;