use of com.intellij.uiDesigner.componentTree.ComponentTreeBuilder in project intellij-community by JetBrains.
the class DesignerToolWindow method update.
public void update(GuiEditor designer) {
clearTreeBuilder();
myComponentTree.setModel(new DefaultTreeModel(new DefaultMutableTreeNode()));
myComponentTree.setEditor(designer);
myPropertyInspector.setEditor(designer);
if (designer == null) {
myComponentTree.setFormEditor(null);
} else {
myComponentTree.setFormEditor(designer.getEditor());
myComponentTreeBuilder = new ComponentTreeBuilder(myComponentTree, designer);
}
}
use of com.intellij.uiDesigner.componentTree.ComponentTreeBuilder in project intellij-community by JetBrains.
the class FormEditingUtil method selectSingleComponent.
public static void selectSingleComponent(final GuiEditor editor, final RadComponent component) {
final RadContainer root = (RadContainer) getRoot(component);
if (root == null)
return;
ComponentTreeBuilder builder = DesignerToolWindowManager.getInstance(editor).getComponentTreeBuilder();
// the component tree will be instantiated after the event has been processed completely
if (builder != null) {
builder.beginUpdateSelection();
}
try {
clearSelection(root);
selectComponent(editor, component);
editor.setSelectionAnchor(component);
editor.scrollComponentInView(component);
} finally {
if (builder != null) {
builder.endUpdateSelection();
}
}
}
use of com.intellij.uiDesigner.componentTree.ComponentTreeBuilder in project intellij-community by JetBrains.
the class ShrinkSelectionAction method actionPerformed.
public void actionPerformed(final AnActionEvent e) {
final GuiEditor editor = FormEditingUtil.getEditorFromContext(e.getDataContext());
assert editor != null;
final SelectionState selectionState = editor.getSelectionState();
selectionState.setInsideChange(true);
ComponentTreeBuilder builder = DesignerToolWindowManager.getInstance(editor).getComponentTreeBuilder();
builder.beginUpdateSelection();
try {
final Stack<ComponentPtr[]> history = selectionState.getSelectionHistory();
history.pop();
SelectionState.restoreSelection(editor, history.peek());
} finally {
builder.endUpdateSelection();
selectionState.setInsideChange(false);
}
}
use of com.intellij.uiDesigner.componentTree.ComponentTreeBuilder in project intellij-community by JetBrains.
the class ExpandSelectionAction method actionPerformed.
public void actionPerformed(final AnActionEvent e) {
final GuiEditor editor = FormEditingUtil.getEditorFromContext(e.getDataContext());
assert editor != null;
final SelectionState selectionState = editor.getSelectionState();
selectionState.setInsideChange(true);
ComponentTreeBuilder builder = DesignerToolWindowManager.getInstance(editor).getComponentTreeBuilder();
if (builder != null) {
builder.beginUpdateSelection();
}
final Stack<ComponentPtr[]> history = selectionState.getSelectionHistory();
try {
final ComponentPtr[] ptrs = history.peek();
for (int i = ptrs.length - 1; i >= 0; i--) {
// Skip invalid components
final ComponentPtr ptr = ptrs[i];
ptr.validate();
if (!ptr.isValid()) {
continue;
}
// Extend selection
final RadComponent component = ptr.getComponent();
final RadContainer parent = component.getParent();
if (parent == null) {
// skip components without parents
continue;
}
boolean shouldSelectParent = true;
for (int j = parent.getComponentCount() - 1; j >= 0; j--) {
final RadComponent sibling = parent.getComponent(j);
if (!sibling.isSelected()) {
shouldSelectParent = false;
sibling.setSelected(true);
}
}
if (shouldSelectParent) {
parent.setSelected(true);
}
}
// Store new selection
history.push(SelectionState.getSelection(editor));
} finally {
if (builder != null) {
builder.endUpdateSelection();
}
selectionState.setInsideChange(false);
}
}
use of com.intellij.uiDesigner.componentTree.ComponentTreeBuilder in project intellij-community by JetBrains.
the class FormEditingUtil method selectComponents.
public static void selectComponents(final GuiEditor editor, List<RadComponent> components) {
if (components.size() > 0) {
RadComponent component = components.get(0);
ComponentTreeBuilder builder = DesignerToolWindowManager.getInstance(editor).getComponentTreeBuilder();
if (builder == null) {
// race condition when handling event?
return;
}
builder.beginUpdateSelection();
try {
clearSelection((RadContainer) getRoot(component));
for (RadComponent aComponent : components) {
selectComponent(editor, aComponent);
}
} finally {
builder.endUpdateSelection();
}
}
}
Aggregations