mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Palette
This commit is contained in:
+7
@@ -111,6 +111,7 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider
|
||||
|
||||
protected QuickFixManager myQuickFixManager;
|
||||
|
||||
private PaletteItem myActivePaletteItem;
|
||||
private List<?> myExpandedComponents;
|
||||
private Property mySelectionProperty;
|
||||
private int[][] myExpandedState;
|
||||
@@ -317,7 +318,13 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider
|
||||
mySurfaceArea.addSelectionListener(mySourceSelectionListener);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public final PaletteItem getActivePaletteItem() {
|
||||
return myActivePaletteItem;
|
||||
}
|
||||
|
||||
public final void activatePaletteItem(@Nullable PaletteItem paletteItem) {
|
||||
myActivePaletteItem = paletteItem;
|
||||
if (paletteItem != null) {
|
||||
myToolProvider.setActiveTool(new CreationTool(true, createCreationFactory(paletteItem)));
|
||||
}
|
||||
|
||||
+15
@@ -160,6 +160,21 @@ public class PaletteItemsComponent extends JBList {
|
||||
}
|
||||
}
|
||||
|
||||
public void restoreSelection(PaletteItem paletteItem) {
|
||||
if (paletteItem == null) {
|
||||
clearSelection();
|
||||
}
|
||||
else {
|
||||
int index = myGroup.getItems().indexOf(paletteItem);
|
||||
if (index == -1) {
|
||||
clearSelection();
|
||||
}
|
||||
else {
|
||||
takeFocusFrom(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
//
|
||||
|
||||
+20
@@ -89,6 +89,15 @@ public class PalettePanel extends JPanel {
|
||||
}
|
||||
|
||||
public void loadPalette(@Nullable DesignerEditorPanel designer) {
|
||||
if (myDesigner == null && designer == null) {
|
||||
return;
|
||||
}
|
||||
if (myDesigner != null && designer != null && myGroups.equals(designer.getPaletteGroups())) {
|
||||
myDesigner = designer;
|
||||
restoreSelection();
|
||||
return;
|
||||
}
|
||||
|
||||
for (PaletteItemsComponent itemsComponent : myItemsComponents) {
|
||||
itemsComponent.removeListSelectionListener(mySelectionListener);
|
||||
}
|
||||
@@ -122,6 +131,17 @@ public class PalettePanel extends JPanel {
|
||||
}
|
||||
|
||||
myPaletteContainer.revalidate();
|
||||
|
||||
if (myDesigner != null) {
|
||||
restoreSelection();
|
||||
}
|
||||
}
|
||||
|
||||
private void restoreSelection() {
|
||||
PaletteItem paletteItem = myDesigner.getActivePaletteItem();
|
||||
for (PaletteItemsComponent itemsComponent : myItemsComponents) {
|
||||
itemsComponent.restoreSelection(paletteItem);
|
||||
}
|
||||
}
|
||||
|
||||
private void notifySelection(@Nullable ListSelectionEvent event) {
|
||||
|
||||
Reference in New Issue
Block a user