Skip to content

Commit

Permalink
Use currently focused MapObject in propertylisteners.
Browse files Browse the repository at this point in the history
  • Loading branch information
nightm4re94 committed Jul 17, 2023
1 parent bf7d409 commit c9382a0
Show file tree
Hide file tree
Showing 11 changed files with 98 additions and 145 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ public class MabObjectPropertyTableModelListener extends MapObjectPropertyListen
TableModelListener {


public MabObjectPropertyTableModelListener(PropertyPanel propertyPanel,
Predicate<IMapObject> mapObjectStateCheck,
public MabObjectPropertyTableModelListener(Predicate<IMapObject> mapObjectStateCheck,
Consumer<IMapObject> updateAction) {
super(propertyPanel, mapObjectStateCheck, updateAction);
super(mapObjectStateCheck, updateAction);
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ public class MapObjectPropertyActionListener extends MapObjectPropertyListener i
ActionListener {


public MapObjectPropertyActionListener(
PropertyPanel propertyPanel,
Predicate<IMapObject> mapObjectStateCheck,
public MapObjectPropertyActionListener(Predicate<IMapObject> mapObjectStateCheck,
Consumer<IMapObject> updateAction) {
super(propertyPanel, mapObjectStateCheck, updateAction);
super(mapObjectStateCheck, updateAction);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ public class MapObjectPropertyChangeListener extends MapObjectPropertyListener i
ChangeListener {


public MapObjectPropertyChangeListener(
PropertyPanel propertyPanel,
Predicate<IMapObject> mapObjectStateCheck,
public MapObjectPropertyChangeListener(Predicate<IMapObject> mapObjectStateCheck,
Consumer<IMapObject> updateAction) {
super(propertyPanel, mapObjectStateCheck, updateAction);
super(mapObjectStateCheck, updateAction);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,9 @@
public class MapObjectPropertyFocusListener extends MapObjectPropertyListener implements
FocusListener {

public MapObjectPropertyFocusListener(
PropertyPanel propertyPanel,
Predicate<IMapObject> mapObjectStateCheck,
public MapObjectPropertyFocusListener(Predicate<IMapObject> mapObjectStateCheck,
Consumer<IMapObject> updateAction) {
super(propertyPanel, mapObjectStateCheck, updateAction);
super(mapObjectStateCheck, updateAction);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,9 @@ public class MapObjectPropertyItemListener extends MapObjectPropertyListener imp
ItemListener {


public MapObjectPropertyItemListener(
PropertyPanel propertyPanel,
Predicate<IMapObject> mapObjectStateCheck,
public MapObjectPropertyItemListener(Predicate<IMapObject> mapObjectStateCheck,
Consumer<IMapObject> updateAction) {
super(propertyPanel, mapObjectStateCheck, updateAction);
super(mapObjectStateCheck, updateAction);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,22 @@
import de.gurkenlabs.utiliti.UndoManager;
import de.gurkenlabs.utiliti.components.Editor;
import de.gurkenlabs.utiliti.swing.UI;
import de.gurkenlabs.utiliti.swing.panels.PropertyPanel;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.logging.Logger;

public class MapObjectPropertyListener {

private final PropertyPanel propertyPanel;
private final Predicate<IMapObject> mapObjectStateCheck;
private final Consumer<IMapObject> updateAction;


protected MapObjectPropertyListener(
PropertyPanel propertyPanel,
Predicate<IMapObject> mapObjectStateCheck,
Consumer<IMapObject> updateAction) {
this.propertyPanel = propertyPanel;
this.mapObjectStateCheck = mapObjectStateCheck;
this.updateAction = updateAction;
}

public PropertyPanel getPropertyPanel() {
return propertyPanel;
}

public Predicate<IMapObject> getMapObjectStateCheck() {
return mapObjectStateCheck;
Expand All @@ -40,20 +32,22 @@ protected Consumer<IMapObject> getUpdateAction() {

protected void applyChanges() {
if (Game.world().environment() == null
|| getPropertyPanel().getMapObject() == null
|| !getMapObjectStateCheck().test(getPropertyPanel().getMapObject())
|| !Editor.instance().getMapComponent().isFocussing()) {
|| Editor.instance().getMapComponent().getFocusedMapObject() == null
|| !getMapObjectStateCheck().test(Editor.instance().getMapComponent().getFocusedMapObject())
) {
return;
}
UndoManager.instance().mapObjectChanging(getPropertyPanel().getMapObject());
getUpdateAction().accept(getPropertyPanel().getMapObject());
UndoManager.instance().mapObjectChanged(getPropertyPanel().getMapObject());
UndoManager.instance()
.mapObjectChanging(Editor.instance().getMapComponent().getFocusedMapObject());
getUpdateAction().accept(Editor.instance().getMapComponent().getFocusedMapObject());
UndoManager.instance()
.mapObjectChanged(Editor.instance().getMapComponent().getFocusedMapObject());
updateEnvironment();
}

private void updateEnvironment() {
if (getPropertyPanel().getMapObject() != null) {
IMapObject obj = getPropertyPanel().getMapObject();
if (Editor.instance().getMapComponent().getFocusedMapObject() != null) {
IMapObject obj = Editor.instance().getMapComponent().getFocusedMapObject();
Game.world().environment().reloadFromMap(obj.getId());
UI.getEntityController().refresh(obj.getId());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ public class NumberModelListener extends MapObjectPropertyChangeListener {

private static final Logger log = Logger.getLogger(NumberModelListener.class.getName());

public NumberModelListener(PropertyPanel propertyPanel, String mapObjectPropertyName,
public NumberModelListener(String mapObjectPropertyName,
SpinnerNumberModel model) {
super(propertyPanel, m -> {
super(m -> {
log.log(Level.INFO, "Has custom property {0}: {1}", new Object[]{mapObjectPropertyName,
m.hasCustomProperty(mapObjectPropertyName)});
log.log(Level.INFO, "Property {0} equals model value {1}: {2}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,17 +5,15 @@

public class SliderListener extends MapObjectPropertyChangeListener {

public SliderListener(PropertyPanel propertyPanel, String mapObjectProperty, JSlider slider) {
super(propertyPanel,
m -> m.hasCustomProperty(mapObjectProperty)
public SliderListener(String mapObjectProperty, JSlider slider) {
super(m -> m.hasCustomProperty(mapObjectProperty)
|| m.getIntValue(mapObjectProperty) != slider.getValue(),
m -> m.setValue(mapObjectProperty, slider.getValue()));
}

public SliderListener(PropertyPanel propertyPanel, String mapObjectProperty, JSlider slider,
public SliderListener(String mapObjectProperty, JSlider slider,
float factor) {
super(propertyPanel,
m -> m.hasCustomProperty(mapObjectProperty)
super(m -> m.hasCustomProperty(mapObjectProperty)
|| m.getFloatValue(mapObjectProperty) != slider.getValue() * factor,
m -> m.setValue(mapObjectProperty, slider.getValue() * factor));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,8 @@

public class SpinnerListener extends MapObjectPropertyChangeListener {

public SpinnerListener(PropertyPanel propertyPanel, String mapObjectProperty, JSpinner spinner) {
super(propertyPanel,
m -> m.hasCustomProperty(mapObjectProperty)
public SpinnerListener(String mapObjectProperty, JSpinner spinner) {
super(m -> m.hasCustomProperty(mapObjectProperty)
|| m.getStringValue(mapObjectProperty) == null
|| !m.getStringValue(mapObjectProperty).equals(spinner.getValue().toString()),
m -> m.setValue(mapObjectProperty, spinner.getValue().toString()));
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,15 @@

import de.gurkenlabs.litiengine.environment.tilemap.IMapObject;
import de.gurkenlabs.litiengine.util.ArrayUtilities;
import de.gurkenlabs.utiliti.swing.panels.PropertyPanel;
import java.util.ArrayList;
import java.util.function.Predicate;
import javax.swing.JTable;

public class TableListener extends MabObjectPropertyTableModelListener {

public TableListener(PropertyPanel propertyPanel, JTable table,
public TableListener(JTable table,
Predicate<IMapObject> mapObjectStateCheck, String... mapObjectProperties) {
super(propertyPanel, mapObjectStateCheck,
super(mapObjectStateCheck,
m -> {
int column = 0;
for (String prop : mapObjectProperties) {
Expand Down
Loading

0 comments on commit c9382a0

Please sign in to comment.