From e52bfe669dcec99f3cd2064c9d1b82f45cd6281d Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 20 Aug 2012 18:47:55 +0400 Subject: [PATCH] relayout DB console toolbar --- .../console/LanguageConsoleImpl.java | 74 ++++++------------- 1 file changed, 24 insertions(+), 50 deletions(-) diff --git a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java index fe857e9a6a8a..0a850a9fb98f 100644 --- a/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java +++ b/platform/lang-impl/src/com/intellij/execution/console/LanguageConsoleImpl.java @@ -106,7 +106,6 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { private final AtomicBoolean myForceScrollToEnd = new AtomicBoolean(false); private final MergingUpdateQueue myUpdateQueue; private Runnable myUiUpdateRunnable; - private ActionGroup myFullEditorActions; private boolean myShowSeparatorLine = true; @@ -177,12 +176,12 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { setPromptInner(myPrompt); } - public void setFullEditorMode(boolean fullEditorMode) { - if (isFullEditorMode() == fullEditorMode) return; + public void setConsoleEditorEnabled(boolean consoleEditorEnabled) { + if (isConsoleEditorEnabled() != consoleEditorEnabled) return; final VirtualFile virtualFile = myFile.getVirtualFile(); assert virtualFile != null; final FileEditorManagerEx fileManager = FileEditorManagerEx.getInstanceEx(getProject()); - if (!fullEditorMode) { + if (consoleEditorEnabled) { fileManager.closeFile(virtualFile); myPanel.removeAll(); myPanel.add(myHistoryViewer.getComponent()); @@ -208,15 +207,6 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { } } - public void setFullEditorActions(ActionGroup actionGroup) { - myFullEditorActions = actionGroup; - for (Editor editor : EditorFactory.getInstance().getAllEditors()) { - if (editor.getDocument() == myEditorDocument) { - configureFullEditor(editor); - } - } - } - public void setShowSeparatorLine(boolean showSeparatorLine) { myShowSeparatorLine = showSeparatorLine; } @@ -263,7 +253,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { myHistoryViewer.getContentComponent().addKeyListener(new KeyAdapter() { public void keyTyped(KeyEvent event) { - if (!isFullEditorMode() && UIUtil.isReallyTypedEvent(event)) { + if (isConsoleEditorEnabled() && UIUtil.isReallyTypedEvent(event)) { myConsoleEditor.getContentComponent().requestFocus(); myConsoleEditor.processKeyTyped(event); } @@ -275,8 +265,8 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { EmptyAction.registerActionShortcuts(myHistoryViewer.getComponent(), myConsoleEditor.getComponent()); } - public boolean isFullEditorMode() { - return myPanel.getComponentCount() == 1; + private boolean isConsoleEditorEnabled() { + return myPanel.getComponentCount() > 1; } protected AnAction[] createActions() { @@ -541,7 +531,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { myUpdateQueue.queue(new Update("UpdateUi") { public void run() { if (Disposer.isDisposed(LanguageConsoleImpl.this)) return; - if (!isFullEditorMode()) { + if (isConsoleEditorEnabled()) { myPanel.revalidate(); myPanel.repaint(); } @@ -580,27 +570,24 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { myProject.getMessageBus().connect(this).subscribe(FileEditorManagerListener.FILE_EDITOR_MANAGER, new FileEditorManagerAdapter() { @Override public void fileOpened(FileEditorManager source, VirtualFile file) { - if (!Comparing.equal(file, myFile.getVirtualFile())) return; - if (myConsoleEditor != null) { - Editor selectedTextEditor = source.getSelectedTextEditor(); - for (FileEditor fileEditor : source.getAllEditors(file)) { - if (!(fileEditor instanceof TextEditor)) continue; - final Editor editor = ((TextEditor)fileEditor).getEditor(); - configureFullEditor(editor); - setConsoleFilePinned((FileEditorManagerEx)source, editor); - ((EditorEx)editor).addFocusListener(myFocusListener); - if (selectedTextEditor == editor) { // already focused - myCurrentEditor = editor; - } - EmptyAction.registerActionShortcuts(editor.getComponent(), myConsoleEditor.getComponent()); - editor.getCaretModel().addCaretListener(new CaretListener() { - public void caretPositionChanged(CaretEvent e) { - queueUiUpdate(false); - } - }); + if (!Comparing.equal(file, myFile.getVirtualFile()) || myConsoleEditor == null) return; + Editor selectedTextEditor = source.getSelectedTextEditor(); + for (FileEditor fileEditor : source.getAllEditors(file)) { + if (!(fileEditor instanceof TextEditor)) continue; + final Editor editor = ((TextEditor)fileEditor).getEditor(); + setConsoleFilePinned((FileEditorManagerEx)source, editor); + ((EditorEx)editor).addFocusListener(myFocusListener); + if (selectedTextEditor == editor) { // already focused + myCurrentEditor = editor; } - queueUiUpdate(false); + EmptyAction.registerActionShortcuts(editor.getComponent(), myConsoleEditor.getComponent()); + editor.getCaretModel().addCaretListener(new CaretListener() { + public void caretPositionChanged(CaretEvent e) { + queueUiUpdate(false); + } + }); } + queueUiUpdate(false); } @Override @@ -634,7 +621,7 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { if (prevFile != null) { final FileEditorManagerEx editorManager = FileEditorManagerEx.getInstanceEx(getProject()); final VirtualFile file = prevFile.getVirtualFile(); - boolean openEditor = isFullEditorMode(); + boolean openEditor = !isConsoleEditorEnabled(); if (file != null && openEditor) { final FileEditor prevEditor = editorManager.getSelectedEditor(file); final boolean focusEditor; @@ -654,19 +641,6 @@ public class LanguageConsoleImpl implements Disposable, TypeSafeDataProvider { } } - private void configureFullEditor(final Editor editor) { - if (editor == null || myFullEditorActions == null || editor == myConsoleEditor) return; - final JPanel header = new EditorHeaderComponent(); - final ActionToolbar actionToolbar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, myFullEditorActions, true); - actionToolbar.setTargetComponent(editor.getContentComponent()); - JComponent component = actionToolbar.getComponent(); - component.setOpaque(false); - header.add(component, BorderLayout.EAST); - editor.putUserData(EditorImpl.PERMANENT_HEADER, header); - editor.setHeaderComponent(header); - editor.getSettings().setLineMarkerAreaShown(false); - } - public void setInputText(final String query) { ApplicationManager.getApplication().runWriteAction(new Runnable() { public void run() {