mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
introduce method signature component
This commit is contained in:
+4
-25
@@ -19,15 +19,9 @@ import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.AnActionEvent;
|
||||
import com.intellij.openapi.actionSystem.KeyboardShortcut;
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.Editor;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
import com.intellij.openapi.editor.colors.EditorColors;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager;
|
||||
import com.intellij.openapi.editor.colors.EditorFontType;
|
||||
import com.intellij.openapi.editor.event.DocumentAdapter;
|
||||
import com.intellij.openapi.editor.event.DocumentEvent;
|
||||
import com.intellij.openapi.editor.event.DocumentListener;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.fileTypes.LanguageFileType;
|
||||
import com.intellij.openapi.progress.ProcessCanceledException;
|
||||
import com.intellij.openapi.project.Project;
|
||||
@@ -83,7 +77,7 @@ public abstract class ChangeSignatureDialogBase<P extends ParameterInfo, M exten
|
||||
protected EditorTextField myReturnTypeField;
|
||||
protected TableView<ParameterTableModelItemBase<P>> myParametersTable;
|
||||
protected final ParameterTableModelBase<P> myParametersTableModel;
|
||||
private EditorTextField mySignatureArea;
|
||||
private MethodSignatureComponent mySignatureArea;
|
||||
private final Alarm myUpdateSignatureAlarm = new Alarm(Alarm.ThreadToUse.SWING_THREAD);
|
||||
|
||||
protected VisibilityPanelBase myVisibilityPanel;
|
||||
@@ -411,12 +405,9 @@ public abstract class ChangeSignatureDialogBase<P extends ParameterInfo, M exten
|
||||
private JComponent createSignaturePanel() {
|
||||
mySignatureArea = createSignaturePreviewComponent();
|
||||
JPanel panel = new JPanel(new BorderLayout());
|
||||
//panel.setBorder(IdeBorderFactory.createTitledBorder(RefactoringBundle.message("signature.preview.border.title")));
|
||||
panel.add(SeparatorFactory.createSeparator(RefactoringBundle.message("signature.preview.border.title"), null), BorderLayout.NORTH);
|
||||
panel.add(mySignatureArea, BorderLayout.CENTER);
|
||||
mySignatureArea.setFont(EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN));
|
||||
mySignatureArea.setPreferredSize(new Dimension(-1, 130));
|
||||
mySignatureArea.setBackground(EditorColorsManager.getInstance().getGlobalScheme().getColor(EditorColors.CARET_ROW_COLOR));
|
||||
mySignatureArea.addFocusListener(new FocusAdapter() {
|
||||
@Override
|
||||
public void focusGained(FocusEvent e) {
|
||||
@@ -427,12 +418,8 @@ public abstract class ChangeSignatureDialogBase<P extends ParameterInfo, M exten
|
||||
return panel;
|
||||
}
|
||||
|
||||
protected EditorTextField createSignaturePreviewComponent() {
|
||||
return new EditorTextField(EditorFactory.getInstance().createDocument(calculateSignature()),
|
||||
getProject(),
|
||||
getFileType(),
|
||||
true,
|
||||
false);
|
||||
protected MethodSignatureComponent createSignaturePreviewComponent() {
|
||||
return new MethodSignatureComponent(calculateSignature(), getProject(),getFileType());
|
||||
}
|
||||
|
||||
protected void updateSignature() {
|
||||
@@ -454,15 +441,7 @@ public abstract class ChangeSignatureDialogBase<P extends ParameterInfo, M exten
|
||||
|
||||
private void doUpdateSignature() {
|
||||
PsiDocumentManager.getInstance(myProject).commitAllDocuments();
|
||||
String signature = calculateSignature();
|
||||
mySignatureArea.setText(signature);
|
||||
final Editor editor = mySignatureArea.getEditor();
|
||||
if (editor != null) {
|
||||
((EditorEx)editor).setHorizontalScrollbarVisible(true);
|
||||
((EditorEx)editor).setVerticalScrollbarVisible(true);
|
||||
editor.getScrollingModel().scrollVertically(0);
|
||||
editor.getScrollingModel().scrollHorizontally(0);
|
||||
}
|
||||
mySignatureArea.setSignature(calculateSignature());
|
||||
}
|
||||
|
||||
protected void updatePropagateButtons() {
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
* Copyright 2000-2011 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
package com.intellij.refactoring.ui;
|
||||
|
||||
import com.intellij.openapi.editor.Document;
|
||||
import com.intellij.openapi.editor.EditorFactory;
|
||||
import com.intellij.openapi.editor.colors.EditorColors;
|
||||
import com.intellij.openapi.editor.colors.EditorColorsManager;
|
||||
import com.intellij.openapi.editor.colors.EditorFontType;
|
||||
import com.intellij.openapi.editor.ex.EditorEx;
|
||||
import com.intellij.openapi.editor.highlighter.EditorHighlighterFactory;
|
||||
import com.intellij.openapi.fileTypes.FileType;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.ui.EditorTextField;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
/**
|
||||
* @author Konstantin Bulenkov
|
||||
*/
|
||||
public class MethodSignatureComponent extends EditorTextField {
|
||||
public MethodSignatureComponent(String signature, Project project, FileType filetype) {
|
||||
this(EditorFactory.getInstance().createDocument(signature), project, filetype);
|
||||
}
|
||||
|
||||
public MethodSignatureComponent(Document document, Project project, FileType filetype) {
|
||||
super(document, project, filetype, true, false);
|
||||
setFont(EditorColorsManager.getInstance().getGlobalScheme().getFont(EditorFontType.PLAIN));
|
||||
setBackground(EditorColorsManager.getInstance().getGlobalScheme().getColor(EditorColors.CARET_ROW_COLOR));
|
||||
}
|
||||
|
||||
public void setSignature(String signature) {
|
||||
setText(signature);
|
||||
final EditorEx editor = (EditorEx)getEditor();
|
||||
if (editor != null) {
|
||||
editor.setHorizontalScrollbarVisible(true);
|
||||
editor.setVerticalScrollbarVisible(true);
|
||||
editor.getScrollingModel().scrollVertically(0);
|
||||
editor.getScrollingModel().scrollHorizontally(0);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
protected EditorEx createEditor() {
|
||||
EditorEx editor = super.createEditor();
|
||||
final String fileName = getFileName();
|
||||
if (fileName != null) {
|
||||
editor.setHighlighter(EditorHighlighterFactory.getInstance().createEditorHighlighter(getProject(), fileName));
|
||||
}
|
||||
return editor;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
protected String getFileName() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user