From: <aki...@us...> - 2009-03-29 14:51:59
|
Revision: 6235 http://gridarta.svn.sourceforge.net/gridarta/?rev=6235&view=rev Author: akirschbaum Date: 2009-03-29 14:51:57 +0000 (Sun, 29 Mar 2009) Log Message: ----------- Merge redundant function calls. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2009-03-29 14:50:10 UTC (rev 6234) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2009-03-29 14:51:57 UTC (rev 6235) @@ -196,16 +196,17 @@ /** This method is invoked when the user pressed the "new event" button. */ public void addNewEventWanted() { if (selectedGameObject != null) { - final MapSquare<G, A, R> mapSquare = selectedGameObject.getHead().getMapSquare(); + final G selectedHead = selectedGameObject.getHead(); + final MapSquare<G, A, R> mapSquare = selectedHead.getMapSquare(); assert mapSquare != null; final MapModel<G, A, R> mapModel = mapSquare.getMapModel(); mapModel.beginTransaction("Add event"); try { - scriptArchEditor.addEventScript(selectedGameObject.getHead(), scriptArchData, parent); + scriptArchEditor.addEventScript(selectedHead, scriptArchData, parent); - if (!scriptArchData.isEmpty(selectedGameObject.getHead())) { + if (!scriptArchData.isEmpty(selectedHead)) { setEventPanelButtonState(true, true, true, true); - scriptArchData.addEventsToJList(eventList, selectedGameObject.getHead()); + scriptArchData.addEventsToJList(eventList, selectedHead); } else { setEventPanelButtonState(true, false, false, false); } @@ -226,6 +227,7 @@ if (selectedGameObject == null) { return; } + final G selectedHead = selectedGameObject.getHead(); // check for a valid selection in the event list if (eventList.getModel() != null && eventList.getModel().getSize() > 0 && eventList.getSelectedIndex() >= 0) { @@ -237,8 +239,8 @@ final MapModel<G, A, R> mapModel = mapSquare.getMapModel(); mapModel.beginTransaction("Modify event"); try { - scriptArchData.modifyEventScript(index, task, eventList, mapManager, parent, selectedGameObject.getHead()); - if (scriptArchData.isEmpty(selectedGameObject.getHead())) { + scriptArchData.modifyEventScript(index, task, eventList, mapManager, parent, selectedHead); + if (scriptArchData.isEmpty(selectedHead)) { setEventPanelButtonState(true, false, false, false); } } finally { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2009-03-29 14:52:50
|
Revision: 6236 http://gridarta.svn.sourceforge.net/gridarta/?rev=6236&view=rev Author: akirschbaum Date: 2009-03-29 14:52:48 +0000 (Sun, 29 Mar 2009) Log Message: ----------- Fix possible NullPointerException. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2009-03-29 14:51:57 UTC (rev 6235) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2009-03-29 14:52:48 UTC (rev 6236) @@ -234,7 +234,7 @@ // there final int index = eventList.getSelectedIndex(); if (index >= 0) { - final MapSquare<G, A, R> mapSquare = selectedGameObject.getMapSquare(); + final MapSquare<G, A, R> mapSquare = selectedHead.getMapSquare(); assert mapSquare != null; final MapModel<G, A, R> mapModel = mapSquare.getMapModel(); mapModel.beginTransaction("Modify event"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-06-06 10:36:52
|
Revision: 8166 http://gridarta.svn.sourceforge.net/gridarta/?rev=8166&view=rev Author: akirschbaum Date: 2010-06-06 10:36:43 +0000 (Sun, 06 Jun 2010) Log Message: ----------- Add @NotNull annotations. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:35:51 UTC (rev 8165) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:36:43 UTC (rev 8166) @@ -67,6 +67,7 @@ /** * The action builder. */ + @NotNull private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); /** @@ -117,14 +118,19 @@ @NotNull private final JScrollPane ssa; + @NotNull private final Action aEventAddNew = ACTION_BUILDER.createAction(false, "eventAddNew", this); + @NotNull private final Action aEventEditData = ACTION_BUILDER.createAction(false, "eventEditData", this); + @NotNull private final Action aEventEdit = ACTION_BUILDER.createAction(false, "eventEdit", this); + @NotNull private final Action aEventRemove = ACTION_BUILDER.createAction(false, "eventRemove", this); + @NotNull private final JList eventList = new JList(); /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-06-06 10:47:54
|
Revision: 8168 http://gridarta.svn.sourceforge.net/gridarta/?rev=8168&view=rev Author: akirschbaum Date: 2010-06-06 10:47:47 +0000 (Sun, 06 Jun 2010) Log Message: ----------- Add comments. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:43:45 UTC (rev 8167) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:47:47 UTC (rev 8168) @@ -57,10 +57,8 @@ */ public class EventsTab<G extends GameObject<G, A, R>, A extends MapArchObject<A>, R extends Archetype<G, A, R>> extends AbstractGameObjectAttributesTab<G, A, R> { - // constants for the 'task' parameter in editEvent() - /** - * The action builder. + * The {@link ActionBuilder}. */ @NotNull private static final ActionBuilder ACTION_BUILDER = ActionBuilderFactory.getInstance().getActionBuilder("net.sf.gridarta"); @@ -72,7 +70,7 @@ private final Frame parent; /** - * The map manager. + * The {@link MapManager}. */ @NotNull private final MapManager<G, A, R> mapManager; @@ -113,23 +111,39 @@ @NotNull private final JScrollPane ssa; + /** + * The action for "add new event". + */ @NotNull private final Action aEventAddNew = ACTION_BUILDER.createAction(false, "eventAddNew", this); + /** + * The action for "edit event parameters". + */ @NotNull private final Action aEventEditData = ACTION_BUILDER.createAction(false, "eventEditData", this); + /** + * The action for "edit event code". + */ @NotNull private final Action aEventEdit = ACTION_BUILDER.createAction(false, "eventEdit", this); + /** + * The action for "remove event". + */ @NotNull private final Action aEventRemove = ACTION_BUILDER.createAction(false, "eventRemove", this); + /** + * The {@link JList} that shows all events. + */ @NotNull private final JList eventList = new JList(); /** - * The currently selected game object. + * The currently selected game object. Set to <code>null</code> if none is + * selected. */ @Nullable private GameObject<G, A, R> selectedGameObject = null; @@ -153,14 +167,12 @@ this.scriptArchDataUtils = scriptArchDataUtils; this.scriptArchUtils = scriptArchUtils; - // create ScrollPane for list scrolling ssa = new JScrollPane(eventList); ssa.setBorder(new EtchedBorder()); ssa.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); ssa.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); ssa.setPreferredSize(new Dimension(80, 40)); - // create buttons final Container grid = new JPanel(new GridLayout(4, 1)); grid.add(new JButton(aEventAddNew)); grid.add(new JButton(aEventEditData)); @@ -354,4 +366,4 @@ aEventRemove.setEnabled(removeButton); } -} +} // class EventsTab This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-06-06 10:48:11
|
Revision: 8169 http://gridarta.svn.sourceforge.net/gridarta/?rev=8169&view=rev Author: akirschbaum Date: 2010-06-06 10:48:05 +0000 (Sun, 06 Jun 2010) Log Message: ----------- Remove duplicated code. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:47:47 UTC (rev 8168) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:48:05 UTC (rev 8169) @@ -179,12 +179,6 @@ grid.add(new JButton(aEventEdit)); grid.add(new JButton(aEventRemove)); - // disable all the buttons in the beginning - aEventAddNew.setEnabled(false); - aEventEditData.setEnabled(false); - aEventEdit.setEnabled(false); - aEventRemove.setEnabled(false); - panel.setLayout(new BorderLayout()); panel.add(ssa, BorderLayout.CENTER); panel.add(grid, BorderLayout.EAST); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-06-06 10:49:24
|
Revision: 8170 http://gridarta.svn.sourceforge.net/gridarta/?rev=8170&view=rev Author: akirschbaum Date: 2010-06-06 10:49:18 +0000 (Sun, 06 Jun 2010) Log Message: ----------- Rename variable names. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:48:05 UTC (rev 8169) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:49:18 UTC (rev 8170) @@ -109,7 +109,7 @@ * The {@link JScrollPane} displaying all event.s */ @NotNull - private final JScrollPane ssa; + private final JScrollPane scrollPane; /** * The action for "add new event". @@ -167,21 +167,21 @@ this.scriptArchDataUtils = scriptArchDataUtils; this.scriptArchUtils = scriptArchUtils; - ssa = new JScrollPane(eventList); - ssa.setBorder(new EtchedBorder()); - ssa.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); - ssa.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); - ssa.setPreferredSize(new Dimension(80, 40)); + scrollPane = new JScrollPane(eventList); + scrollPane.setBorder(new EtchedBorder()); + scrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED); + scrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER); + scrollPane.setPreferredSize(new Dimension(80, 40)); - final Container grid = new JPanel(new GridLayout(4, 1)); - grid.add(new JButton(aEventAddNew)); - grid.add(new JButton(aEventEditData)); - grid.add(new JButton(aEventEdit)); - grid.add(new JButton(aEventRemove)); + final Container buttons = new JPanel(new GridLayout(4, 1)); + buttons.add(new JButton(aEventAddNew)); + buttons.add(new JButton(aEventEditData)); + buttons.add(new JButton(aEventEdit)); + buttons.add(new JButton(aEventRemove)); panel.setLayout(new BorderLayout()); - panel.add(ssa, BorderLayout.CENTER); - panel.add(grid, BorderLayout.EAST); + panel.add(scrollPane, BorderLayout.CENTER); + panel.add(buttons, BorderLayout.EAST); panel.setPreferredSize(new Dimension(100, 40)); refresh(gameObjectAttributesModel.getSelectedGameObject()); @@ -218,7 +218,7 @@ */ @Override public void requestFocus() { - ssa.requestFocusInWindow(); + scrollPane.requestFocusInWindow(); } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <aki...@us...> - 2010-06-06 14:47:42
|
Revision: 8171 http://gridarta.svn.sourceforge.net/gridarta/?rev=8171&view=rev Author: akirschbaum Date: 2010-06-06 12:16:52 +0000 (Sun, 06 Jun 2010) Log Message: ----------- Merge duplicated code. Fix behavior of Events tab within game object attributes panel. Modified Paths: -------------- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java Modified: trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java =================================================================== --- trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 10:49:18 UTC (rev 8170) +++ trunk/src/app/net/sf/gridarta/gui/gameobjectattributespanel/EventsTab.java 2010-06-06 12:16:52 UTC (rev 8171) @@ -30,8 +30,12 @@ import javax.swing.JList; import javax.swing.JPanel; import javax.swing.JScrollPane; +import javax.swing.ListModel; +import javax.swing.ListSelectionModel; import javax.swing.ScrollPaneConstants; import javax.swing.border.EtchedBorder; +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; import net.sf.gridarta.gui.scripts.ScriptArchDataUtils; import net.sf.gridarta.gui.scripts.ScriptArchEditor; import net.sf.gridarta.gui.scripts.ScriptTask; @@ -184,6 +188,16 @@ panel.add(buttons, BorderLayout.EAST); panel.setPreferredSize(new Dimension(100, 40)); + eventList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); + final ListSelectionListener listSelectionListener = new ListSelectionListener() { + + @Override + public void valueChanged(final ListSelectionEvent e) { + updateActions(); + } + + }; + eventList.addListSelectionListener(listSelectionListener); refresh(gameObjectAttributesModel.getSelectedGameObject()); } @@ -229,26 +243,29 @@ selectedGameObject = gameObject; if (gameObject == null || !gameObject.isScripted()) { setTabSeverity(Severity.DEFAULT); - if (eventList.getModel() != null && eventList.getModel().getSize() > 0) { + final ListModel listModel = eventList.getModel(); + if (listModel != null && listModel.getSize() > 0) { eventList.setModel(new DefaultListModel()); } - - aEventAddNew.setEnabled(gameObject != null); - aEventEditData.setEnabled(false); - aEventEdit.setEnabled(false); - aEventRemove.setEnabled(false); } else { setTabSeverity(Severity.MODIFIED); eventList.removeAll(); scriptArchUtils.addEventsToJList(eventList, gameObject); - aEventAddNew.setEnabled(true); - aEventEditData.setEnabled(true); - aEventEdit.setEnabled(true); - aEventRemove.setEnabled(true); } + updateActions(); } /** + * Updates the enabled state of all actions. + */ + private void updateActions() { + aEventAddNew.setEnabled(doAddNewEvent(false)); + aEventEditData.setEnabled(doEditEvent(ScriptTask.EVENT_EDIT_PATH, false)); + aEventEdit.setEnabled(doEditEvent(ScriptTask.EVENT_OPEN, false)); + aEventRemove.setEnabled(doEditEvent(ScriptTask.EVENT_REMOVE, false)); + } + + /** * {@inheritDoc} */ @Override @@ -260,7 +277,7 @@ */ @ActionMethod public void eventAddNew() { - addNewEvent(); + doAddNewEvent(true); } /** @@ -268,7 +285,7 @@ */ @ActionMethod public void eventEditData() { - editEvent(ScriptTask.EVENT_EDIT_PATH); + doEditEvent(ScriptTask.EVENT_EDIT_PATH, true); } /** @@ -276,7 +293,7 @@ */ @ActionMethod public void eventEdit() { - editEvent(ScriptTask.EVENT_OPEN); + doEditEvent(ScriptTask.EVENT_OPEN, true); } /** @@ -284,15 +301,22 @@ */ @ActionMethod public void eventRemove() { - editEvent(ScriptTask.EVENT_REMOVE); + doEditEvent(ScriptTask.EVENT_REMOVE, true); } /** * This method is invoked when the user pressed the "new event" button. + * @param performAction whether the action should be performed + * @return whether the action was or can be performed */ - public void addNewEvent() { - if (selectedGameObject != null) { - final G selectedHead = selectedGameObject.getHead(); + private boolean doAddNewEvent(final boolean performAction) { + final GameObject<G, A, R> gameObject = selectedGameObject; + if (gameObject == null) { + return false; + } + + if (performAction) { + final G selectedHead = gameObject.getHead(); final MapSquare<G, A, R> mapSquare = selectedHead.getMapSquare(); assert mapSquare != null; final MapModel<G, A, R> mapModel = mapSquare.getMapModel(); @@ -310,6 +334,8 @@ mapModel.endTransaction(); } } + + return true; } /** @@ -318,32 +344,42 @@ * selection in the event list, the appropriate action for this event is * triggered. * @param task the task to execute + * @param performAction whether the action should be performed + * @return whether the action was or can be performed */ - private void editEvent(@NotNull final ScriptTask task) { - if (selectedGameObject == null) { - return; + private boolean doEditEvent(@NotNull final ScriptTask task, final boolean performAction) { + final GameObject<G, A, R> gameObject = selectedGameObject; + if (gameObject == null) { + return false; } - final G selectedHead = selectedGameObject.getHead(); - // check for a valid selection in the event list - if (eventList.getModel() != null && eventList.getModel().getSize() > 0 && eventList.getSelectedIndex() >= 0) { - // there - final int index = eventList.getSelectedIndex(); - if (index >= 0) { - final MapSquare<G, A, R> mapSquare = selectedHead.getMapSquare(); - assert mapSquare != null; - final MapModel<G, A, R> mapModel = mapSquare.getMapModel(); - mapModel.beginTransaction("Modify event"); - try { - scriptArchDataUtils.modifyEventScript(index, task, eventList, mapManager, parent, selectedHead); - if (scriptArchData.isEmpty(selectedHead)) { - setEventPanelButtonState(true, false, false, false); - } - } finally { - mapModel.endTransaction(); + final ListModel listModel = eventList.getModel(); + if (listModel == null || listModel.getSize() <= 0) { + return false; + } + + final int index = eventList.getSelectedIndex(); + if (index < 0) { + return false; + } + + if (performAction) { + final G selectedHead = gameObject.getHead(); + final MapSquare<G, A, R> mapSquare = selectedHead.getMapSquare(); + assert mapSquare != null; + final MapModel<G, A, R> mapModel = mapSquare.getMapModel(); + mapModel.beginTransaction("Modify event"); + try { + scriptArchDataUtils.modifyEventScript(index, task, eventList, mapManager, parent, selectedHead); + if (scriptArchData.isEmpty(selectedHead)) { + setEventPanelButtonState(true, false, false, false); } + } finally { + mapModel.endTransaction(); } } + + return true; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |