F4 in FileStructureDialog now closes the dialog as it should

This commit is contained in:
Eugene Zhuravlev
2005-01-21 11:21:19 +03:00
parent 39a6ab9323
commit 29714cde66
2 changed files with 27 additions and 26 deletions
@@ -208,14 +208,8 @@ public class CommanderPanel extends JPanel {
final AbstractTreeNode element = getSelectedNode();
if (element.getChildren().size() == 0) {
if (!shouldDrillDownOnEmptyElement(element.getValue())) {
Object selectedValue = getSelectedValue();
if (selectedValue instanceof Navigatable && ((Navigatable)selectedValue).canNavigate()) {
((Navigatable)selectedValue).navigate(true);
onNavigatePerformed();
return;
} else {
return;
}
navigateSelectedElement();
return;
}
}
@@ -227,6 +221,15 @@ public class CommanderPanel extends JPanel {
updateHistory(true);
}
public boolean navigateSelectedElement() {
final Object selectedValue = getSelectedValue();
if (selectedValue instanceof Navigatable && ((Navigatable)selectedValue).canNavigate()) {
((Navigatable)selectedValue).navigate(true);
return true;
}
return false;
}
protected boolean shouldDrillDownOnEmptyElement(final Object value) {
return true;
}
@@ -236,10 +239,6 @@ public class CommanderPanel extends JPanel {
return selectedIndices.length == 1 && selectedIndices[0] == 0 && (myModel.getElementAt(selectedIndices[0]) instanceof String);
}
protected void onNavigatePerformed() {
}
public final void setBuilder(final AbstractListBuilder builder) {
myBuilder = builder;
removeAll();
@@ -60,16 +60,12 @@ public class FileStructureDialog extends DialogWrapper {
if (elementAtCursor != null) {
if (elementAtCursor instanceof PsiClass) {
myCommanderPanel.getBuilder().enterElement(elementAtCursor, ((PsiClass)elementAtCursor).getContainingFile().getVirtualFile());
myCommanderPanel.getBuilder().enterElement(elementAtCursor, elementAtCursor.getContainingFile().getVirtualFile());
}
else {
myCommanderPanel.getBuilder().selectElement(elementAtCursor);
}
}
AnAction editSourceAction = ActionManager.getInstance().getAction(IdeActions.ACTION_EDIT_SOURCE);
editSourceAction.registerCustomShortcutSet(editSourceAction.getShortcutSet(), myCommanderPanel);
}
protected Border createContentPaneBorder(){
@@ -157,12 +153,15 @@ public class FileStructureDialog extends DialogWrapper {
});
myCommanderPanel.setTitlePanelVisible(false);
//ShortcutSet shortcutSet = ActionManager.getInstance().getAction(IdeActions.ACTION_EDIT_SOURCE).getShortcutSet();
//new AnAction() {
// public void actionPerformed(AnActionEvent e){
// myCommanderPanel.performEditSourceAction();
// }
//}.registerCustomShortcutSet(shortcutSet, myCommanderPanel);
new AnAction() {
public void actionPerformed(AnActionEvent e) {
final boolean succeeded = myCommanderPanel.navigateSelectedElement();
if (succeeded) {
unregisterCustomShortcutSet(myCommanderPanel);
}
}
}.registerCustomShortcutSet(ActionManager.getInstance().getAction(IdeActions.ACTION_EDIT_SOURCE).getShortcutSet(), myCommanderPanel);
myCommanderPanel.setPreferredSize(new Dimension(400,500));
JPanel panel = new JPanel(new GridBagLayout());
@@ -227,11 +226,14 @@ public class FileStructureDialog extends DialogWrapper {
}
});
}
protected void onNavigatePerformed() {
close(CANCEL_EXIT_CODE);
public boolean navigateSelectedElement() {
final boolean succeeded = super.navigateSelectedElement();
if (succeeded) {
close(CANCEL_EXIT_CODE);
}
return succeeded;
}
public Object getData(String dataId) {