enable buttons to move up and down on all (extracted) list panels

This commit is contained in:
OMGeeky
2025-06-21 20:01:01 +02:00
parent d166e49f4d
commit 3cc6eb9edb
3 changed files with 9 additions and 20 deletions

View File

@@ -152,8 +152,7 @@ public class DialogueEditor extends JSONElementEditor {
Dialogue.Reward::new, Dialogue.Reward::new,
cellRendererRewards, cellRendererRewards,
titleRewards, titleRewards,
(x) -> null, (x) -> null
false
).collapsiblePanel; ).collapsiblePanel;
if (dialogue.rewards == null || dialogue.rewards.isEmpty()) { if (dialogue.rewards == null || dialogue.rewards.isEmpty()) {
rewards.collapse(); rewards.collapse();
@@ -181,8 +180,7 @@ public class DialogueEditor extends JSONElementEditor {
Dialogue.Reply::new, Dialogue.Reply::new,
cellRendererReplies, cellRendererReplies,
titleReplies, titleReplies,
(x) -> null, (x) -> null
true
).collapsiblePanel; ).collapsiblePanel;
if (dialogue.replies == null || dialogue.replies.isEmpty()) { if (dialogue.replies == null || dialogue.replies.isEmpty()) {
replies.collapse(); replies.collapse();
@@ -459,8 +457,7 @@ public class DialogueEditor extends JSONElementEditor {
Requirement::new, Requirement::new,
cellRendererRequirements, cellRendererRequirements,
titleRequirements, titleRequirements,
(x) -> x.required_obj, (x) -> x.required_obj
false
); );
CollapsiblePanel requirementsPane = itemsPane.collapsiblePanel; CollapsiblePanel requirementsPane = itemsPane.collapsiblePanel;
requirementsList = itemsPane.list; requirementsList = itemsPane.list;

View File

@@ -66,8 +66,7 @@ public class DroplistEditor extends JSONElementEditor {
DroppedItem::new, DroppedItem::new,
new DroppedItemsCellRenderer(), new DroppedItemsCellRenderer(),
"Items in this droplist: ", "Items in this droplist: ",
(x) -> x.item, (x) -> x.item
false
).collapsiblePanel; ).collapsiblePanel;
if (droplist.dropped_items == null || droplist.dropped_items.isEmpty()) { if (droplist.dropped_items == null || droplist.dropped_items.isEmpty()) {
itemsPane.collapse(); itemsPane.collapse();

View File

@@ -9,7 +9,6 @@ import com.gpl.rpg.atcontentstudio.ui.OrderedListenerListModel;
import com.jidesoft.swing.JideBoxLayout; import com.jidesoft.swing.JideBoxLayout;
import javax.swing.*; import javax.swing.*;
import java.awt.*;
import java.awt.event.*; import java.awt.event.*;
import java.util.function.Supplier; import java.util.function.Supplier;
@@ -40,8 +39,7 @@ public class UiUtils {
Supplier<E> tempSupplier, Supplier<E> tempSupplier,
DefaultListCellRenderer cellRenderer, DefaultListCellRenderer cellRenderer,
String title, String title,
BasicLambdaWithArgAndReturn<E, GameDataElement> getReferencedObj, BasicLambdaWithArgAndReturn<E, GameDataElement> getReferencedObj) {
boolean withMoveButtons) {
CollapsiblePanel itemsPane = new CollapsiblePanel(title); CollapsiblePanel itemsPane = new CollapsiblePanel(title);
itemsPane.setLayout(new JideBoxLayout(itemsPane, JideBoxLayout.PAGE_AXIS)); itemsPane.setLayout(new JideBoxLayout(itemsPane, JideBoxLayout.PAGE_AXIS));
final JList<E> itemsList = new JList<>(itemsListModel); final JList<E> itemsList = new JList<>(itemsListModel);
@@ -62,16 +60,13 @@ public class UiUtils {
setSelectedItem.doIt(selectedValue); setSelectedItem.doIt(selectedValue);
if (selectedValue == null) { if (selectedValue == null) {
deleteBtn.setEnabled(false); deleteBtn.setEnabled(false);
if (withMoveButtons) { moveUpBtn.setEnabled(false);
moveUpBtn.setEnabled(false); moveDownBtn.setEnabled(false);
moveDownBtn.setEnabled(false);
}
} else { } else {
deleteBtn.setEnabled(true); deleteBtn.setEnabled(true);
if (withMoveButtons) {
moveUpBtn.setEnabled(itemsList.getSelectedIndex() > 0); moveUpBtn.setEnabled(itemsList.getSelectedIndex() > 0);
moveDownBtn.setEnabled(itemsList.getSelectedIndex() < (itemsListModel.getSize() - 1)); moveDownBtn.setEnabled(itemsList.getSelectedIndex() < (itemsListModel.getSize() - 1));
}
} }
updateEditorPane.doIt(editorPane); updateEditorPane.doIt(editorPane);
}); });
@@ -80,10 +75,8 @@ public class UiUtils {
listButtonsPane.setLayout(new JideBoxLayout(listButtonsPane, JideBoxLayout.LINE_AXIS, 6)); listButtonsPane.setLayout(new JideBoxLayout(listButtonsPane, JideBoxLayout.LINE_AXIS, 6));
addRemoveAndAddButtons(listener, itemsListModel, selectedItemReset, selectedItem, tempSupplier, createBtn, itemsList, listButtonsPane, deleteBtn); addRemoveAndAddButtons(listener, itemsListModel, selectedItemReset, selectedItem, tempSupplier, createBtn, itemsList, listButtonsPane, deleteBtn);
addMoveButtonListeners(listener, itemsListModel, selectedItem, moveUpBtn, itemsList, listButtonsPane, moveDownBtn);
if (withMoveButtons) {
addMoveButtonListeners(listener, itemsListModel, selectedItem, moveUpBtn, itemsList, listButtonsPane, moveDownBtn);
}
listButtonsPane.add(new JPanel(), JideBoxLayout.VARY); listButtonsPane.add(new JPanel(), JideBoxLayout.VARY);
itemsPane.add(listButtonsPane, JideBoxLayout.FIX); itemsPane.add(listButtonsPane, JideBoxLayout.FIX);
} }