mirror of
https://github.com/OMGeeky/ATCS.git
synced 2025-12-26 23:57:25 +01:00
add navigation to getCollapsibleItemList
This commit is contained in:
@@ -243,6 +243,7 @@ public class DialogueEditor extends JSONElementEditor {
|
||||
Dialogue.Reward::new,
|
||||
cellRendererRewards,
|
||||
titleRewards,
|
||||
(x)->null,
|
||||
false
|
||||
).collapsiblePanel;
|
||||
if (dialogue.rewards == null || dialogue.rewards.isEmpty()) {
|
||||
@@ -355,8 +356,9 @@ public class DialogueEditor extends JSONElementEditor {
|
||||
dialogue.writable,
|
||||
Dialogue.Reply::new,
|
||||
cellRendererReplies,
|
||||
titleReplies
|
||||
, true
|
||||
titleReplies,
|
||||
(x)->null,
|
||||
true
|
||||
).collapsiblePanel;
|
||||
if (dialogue.replies == null || dialogue.replies.isEmpty()) {
|
||||
replies.collapse();
|
||||
@@ -706,6 +708,7 @@ public class DialogueEditor extends JSONElementEditor {
|
||||
Requirement::new,
|
||||
cellRendererRequirements,
|
||||
titleRequirements,
|
||||
(x)-> x.required_obj,
|
||||
false
|
||||
);
|
||||
CollapsiblePanel requirementsPane = itemsPane.collapsiblePanel;
|
||||
|
||||
@@ -73,6 +73,7 @@ public class DroplistEditor extends JSONElementEditor {
|
||||
DroppedItem::new,
|
||||
new DroppedItemsCellRenderer(),
|
||||
"Items in this droplist: ",
|
||||
(x)-> x.item,
|
||||
false
|
||||
).collapsiblePanel;
|
||||
if (droplist.dropped_items == null || droplist.dropped_items.isEmpty()) {
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package com.gpl.rpg.atcontentstudio.utils;
|
||||
|
||||
public interface BasicLambdaWithArgAndReturn<T, R> {
|
||||
public R doIt(T arg);
|
||||
}
|
||||
@@ -29,6 +29,7 @@ public class UiUtils {
|
||||
Supplier<E> tempSupplier,
|
||||
DefaultListCellRenderer cellRenderer,
|
||||
String title,
|
||||
BasicLambdaWithArgAndReturn<E, GameDataElement> getReferencedObj,
|
||||
boolean withMoveButtons) {
|
||||
CollapsiblePanel itemsPane = new CollapsiblePanel(title);
|
||||
itemsPane.setLayout(new JideBoxLayout(itemsPane, JideBoxLayout.PAGE_AXIS));
|
||||
@@ -109,28 +110,8 @@ public class UiUtils {
|
||||
listButtonsPane.add(new JPanel(), JideBoxLayout.VARY);
|
||||
itemsPane.add(listButtonsPane, JideBoxLayout.FIX);
|
||||
}
|
||||
//TODO: add double click to navigate to the item in the editor pane.
|
||||
// TODO: figure out what ID is needed here
|
||||
// itemsList.addMouseListener(new MouseAdapter() {
|
||||
// @Override
|
||||
// public void mouseClicked(MouseEvent e) {
|
||||
// if (e.getClickCount() == 2) {
|
||||
// if (itemsList.getSelectedValue() != null && ((E)itemsList.getSelectedValue()).required_obj != null) {
|
||||
// ATContentStudio.frame.openEditor(((E)itemsList.getSelectedValue()).required_obj);
|
||||
// ATContentStudio.frame.selectInTree(((E)itemsList.getSelectedValue()).required_obj);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
// itemsList.addKeyListener(new KeyAdapter() {
|
||||
// @Override
|
||||
// public void keyReleased(KeyEvent e) {
|
||||
// if (e.getKeyCode() == KeyEvent.VK_ENTER) {
|
||||
// ATContentStudio.frame.openEditor(((E)itemsList.getSelectedValue()).required_obj);
|
||||
// ATContentStudio.frame.selectInTree(((E)itemsList.getSelectedValue()).required_obj);
|
||||
// }
|
||||
// }
|
||||
// });
|
||||
|
||||
addNavigationListeners(getReferencedObj, itemsList);
|
||||
|
||||
editorPane.setLayout(new JideBoxLayout(editorPane, JideBoxLayout.PAGE_AXIS));
|
||||
itemsPane.add(editorPane, JideBoxLayout.FIX);
|
||||
@@ -142,4 +123,34 @@ public class UiUtils {
|
||||
};
|
||||
}
|
||||
|
||||
private static <E> void addNavigationListeners(BasicLambdaWithArgAndReturn<E, GameDataElement> getReferencedObj, JList<E> itemsList) {
|
||||
// Add listeners to the list for double-click and Enter key to open the editor
|
||||
itemsList.addMouseListener(new MouseAdapter() {
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
if (e.getClickCount() == 2) {
|
||||
E selectedValue = itemsList.getSelectedValue();
|
||||
if (selectedValue == null) return;
|
||||
GameDataElement referencedObj = getReferencedObj.doIt(selectedValue);
|
||||
if (referencedObj != null) {
|
||||
ATContentStudio.frame.openEditor(referencedObj);
|
||||
ATContentStudio.frame.selectInTree( referencedObj);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
itemsList.addKeyListener(new KeyAdapter() {
|
||||
@Override
|
||||
public void keyReleased(KeyEvent e) {
|
||||
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
|
||||
E selectedValue = itemsList.getSelectedValue();
|
||||
if (selectedValue == null) return;
|
||||
GameDataElement referencedObj = getReferencedObj.doIt(selectedValue);
|
||||
ATContentStudio.frame.openEditor(referencedObj);
|
||||
ATContentStudio.frame.selectInTree(referencedObj);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user