summaryrefslogtreecommitdiff
path: root/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java')
-rw-r--r--platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java106
1 files changed, 37 insertions, 69 deletions
diff --git a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
index dfaa6501831b..cd1ec63d1879 100644
--- a/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
+++ b/platform/lang-impl/src/com/intellij/internal/psiView/PsiViewerDialog.java
@@ -101,7 +101,7 @@ import java.util.regex.Pattern;
*/
public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disposable {
private static final String REFS_CACHE = "References Resolve Cache";
- private static final Color SELECTION_BG_COLOR = new JBColor(new Color(0x009999), new Color(0, 80, 80));
+ private static final Color BOX_COLOR = new JBColor(new Color(0xFC6C00), new Color(0xDE6C01));
private static final Logger LOG = Logger.getInstance("#com.intellij.internal.psiView.PsiViewerDialog");
private final Project myProject;
@@ -133,7 +133,6 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
@Nullable
private BlockTreeBuilder myBlockTreeBuilder;
private RangeHighlighter myHighlighter;
- private RangeHighlighter myIntersectHighlighter;
private HashMap<PsiElement, BlockTreeNode> myPsiToBlockMap;
private final Set<SourceWrapper> mySourceWrappers = ContainerUtil.newTreeSet();
@@ -163,7 +162,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
}
@Override
- public int compare(String o1, String o2) {
+ public int compare(@NotNull String o1, @NotNull String o2) {
if (o1.equals(myOnTop)) return -1;
if (o2.equals(myOnTop)) return 1;
return o1.compareToIgnoreCase(o2);
@@ -194,8 +193,8 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
}
@Override
- public int compareTo(final SourceWrapper o) {
- return o == null ? -1 : getText().compareToIgnoreCase(o.getText());
+ public int compareTo(@NotNull final SourceWrapper o) {
+ return getText().compareToIgnoreCase(o.getText());
}
}
@@ -242,7 +241,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
final TreeCellRenderer renderer = myPsiTree.getCellRenderer();
myPsiTree.setCellRenderer(new TreeCellRenderer() {
@Override
- public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
+ public Component getTreeCellRendererComponent(@NotNull JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus) {
final Component c = renderer.getTreeCellRendererComponent(tree, value, selected, expanded, leaf, row, hasFocus);
if (value instanceof DefaultMutableTreeNode) {
final Object userObject = ((DefaultMutableTreeNode)value).getUserObject();
@@ -251,7 +250,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
if (c instanceof NodeRenderer) {
((NodeRenderer)c).setToolTipText(element == null ? null : element.getClass().getName());
}
- if ((element instanceof PsiElement && FileContextUtil.getFileContext(((PsiElement)element).getContainingFile()) != null) ||
+ if (element instanceof PsiElement && FileContextUtil.getFileContext(((PsiElement)element).getContainingFile()) != null ||
element instanceof ViewerTreeStructure.Inject) {
final TextAttributes attr = EditorColorsManager.getInstance().getGlobalScheme().getAttributes(EditorColors.INJECTED_LANGUAGE_FRAGMENT);
c.setBackground(attr.getBackgroundColor());
@@ -271,7 +270,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
myRefs.getSelectionModel().addListSelectionListener(listener);
myRefs.setCellRenderer(new DefaultListCellRenderer() {
@Override
- public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
+ public Component getListCellRendererComponent(@NotNull JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
final Component comp = super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (resolve(index) == null) {
comp.setForeground(JBColor.RED);
@@ -289,7 +288,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
getPeer().getWindow().setFocusTraversalPolicy(new LayoutFocusTraversalPolicy() {
@Override
- public Component getInitialComponent(Window window) {
+ public Component getInitialComponent(@NotNull Window window) {
return myEditor.getComponent();
}
});
@@ -324,7 +323,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
mySourceWrappers.add(wrapper);
if (lastUsed == null && wrapper.getText().equals(type)) lastUsed = wrapper;
if (myCurrentFile != null && wrapper.myFileType instanceof LanguageFileType &&
- ((LanguageFileType)wrapper.myFileType).equals(curLanguage.getAssociatedFileType())) {
+ wrapper.myFileType.equals(curLanguage.getAssociatedFileType())) {
lastUsed = wrapper;
}
}
@@ -347,7 +346,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
};
myFileTypeComboBox.addActionListener(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
updateDialectsCombo(null);
updateExtensionsCombo();
updateEditor();
@@ -355,7 +354,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
});
myDialectComboBox.addActionListener(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
updateEditor();
}
});
@@ -382,14 +381,14 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
final ViewerTreeStructure psiTreeStructure = (ViewerTreeStructure)myPsiTreeBuilder.getTreeStructure();
myShowWhiteSpacesBox.addActionListener(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
psiTreeStructure.setShowWhiteSpaces(myShowWhiteSpacesBox.isSelected());
myPsiTreeBuilder.queueUpdate();
}
});
myShowTreeNodesCheckBox.addActionListener(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
psiTreeStructure.setShowTreeNodes(myShowTreeNodesCheckBox.isSelected());
myPsiTreeBuilder.queueUpdate();
}
@@ -402,7 +401,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
myBlockStructurePanel.setVisible(settings.showBlocks);
myShowBlocksCheckBox.addActionListener(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
if (!myShowBlocksCheckBox.isSelected()) {
settings.blockRefDividerLocation = myBlockRefSplitPane.getDividerLocation();
}
@@ -473,14 +472,14 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
registerKeyboardAction(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
focusEditor();
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_T, mask));
registerKeyboardAction(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
focusTree();
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_S, mask));
@@ -488,21 +487,21 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
registerKeyboardAction(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
focusBlockTree();
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_K, mask));
registerKeyboardAction(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
focusRefs();
}
}, KeyStroke.getKeyStroke(KeyEvent.VK_R, mask));
registerKeyboardAction(new ActionListener() {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
if (myRefs.isFocusOwner()) {
focusBlockTree();
}
@@ -548,26 +547,6 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
myBlockTreeSeparator.setLabelFor(myBlockTree);
}
- private void updateIntersectHighlighter(int highlightStart, int highlightEnd) {
- if (myIntersectHighlighter != null) {
- myEditor.getMarkupModel().removeHighlighter(myIntersectHighlighter);
- myIntersectHighlighter.dispose();
- }
- if (myEditor.getSelectionModel().hasSelection()) {
- int selectionStart = myEditor.getSelectionModel().getSelectionStart();
- int selectionEnd = myEditor.getSelectionModel().getSelectionEnd();
- TextRange resRange = new TextRange(highlightStart, highlightEnd).intersection(new TextRange(selectionStart, selectionEnd));
- if (resRange != null) {
- TextAttributes attributes = new TextAttributes();
- attributes.setBackgroundColor(Color.LIGHT_GRAY);
- attributes.setForegroundColor(Color.white);
- myIntersectHighlighter = myEditor.getMarkupModel()
- .addRangeHighlighter(resRange.getStartOffset(), resRange.getEndOffset(), HighlighterLayer.LAST + 1, attributes,
- HighlighterTargetArea.EXACT_RANGE);
- }
- }
- }
-
@Nullable
private PsiElement getPsiElement() {
final TreePath path = myPsiTree.getSelectionPath();
@@ -676,7 +655,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
protected Action[] createActions() {
AbstractAction copyPsi = new AbstractAction("Cop&y PSI") {
@Override
- public void actionPerformed(ActionEvent e) {
+ public void actionPerformed(@NotNull ActionEvent e) {
PsiElement element = parseText(myEditor.getDocument().getText());
List<PsiElement> allToParse = new ArrayList<PsiElement>();
if (element instanceof PsiFile) {
@@ -735,7 +714,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
myPsiToBlockMap = new HashMap<PsiElement, BlockTreeNode>();
final PsiElement psiFile = ((ViewerTreeStructure)myPsiTreeBuilder.getTreeStructure()).getRootPsiElement();
initMap(rootNode, psiFile);
- PsiElement rootPsi = (rootNode.getBlock() instanceof ASTBlock) ?
+ PsiElement rootPsi = rootNode.getBlock() instanceof ASTBlock ?
((ASTBlock)rootNode.getBlock()).getNode().getPsi() : rootElement;
BlockTreeNode blockNode = myPsiToBlockMap.get(rootPsi);
@@ -856,12 +835,12 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
public MyPsiTreeSelectionListener() {
myAttributes = new TextAttributes();
- myAttributes.setBackgroundColor(SELECTION_BG_COLOR);
- myAttributes.setForegroundColor(Color.white);
+ myAttributes.setEffectColor(BOX_COLOR);
+ myAttributes.setEffectType(EffectType.ROUNDED_BOX);
}
@Override
- public void valueChanged(TreeSelectionEvent e) {
+ public void valueChanged(@NotNull TreeSelectionEvent e) {
if (!myEditor.getDocument().getText().equals(myLastParsedText) || myBlockTree.hasFocus()) return;
TreePath path = myPsiTree.getSelectionPath();
clearSelection();
@@ -887,8 +866,6 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
final int textLength = myEditor.getDocument().getTextLength();
if (end <= textLength) {
myHighlighter = myEditor.getMarkupModel().addRangeHighlighter(start, end, HighlighterLayer.LAST, myAttributes, HighlighterTargetArea.EXACT_RANGE);
- updateIntersectHighlighter(start, end);
-
if (myPsiTree.hasFocus()) {
myEditor.getCaretModel().moveToOffset(start);
myEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
@@ -946,12 +923,12 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
public MyBlockTreeSelectionListener() {
myAttributes = new TextAttributes();
- myAttributes.setBackgroundColor(SELECTION_BG_COLOR);
- myAttributes.setForegroundColor(Color.white);
+ myAttributes.setEffectColor(BOX_COLOR);
+ myAttributes.setEffectType(EffectType.ROUNDED_BOX);
}
@Override
- public void valueChanged(TreeSelectionEvent e) {
+ public void valueChanged(@NotNull TreeSelectionEvent e) {
if (myIgnoreBlockTreeSelectionMarker > 0 || myBlockTreeBuilder == null) {
return;
}
@@ -988,7 +965,6 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
if (end <= textLength) {
myHighlighter = myEditor.getMarkupModel()
.addRangeHighlighter(start, end, HighlighterLayer.LAST, myAttributes, HighlighterTargetArea.EXACT_RANGE);
- updateIntersectHighlighter(start, end);
myEditor.getCaretModel().moveToOffset(start);
myEditor.getScrollingModel().scrollToCaret(ScrollType.MAKE_VISIBLE);
@@ -1112,7 +1088,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
private class GoToListener implements KeyListener, MouseListener, ListSelectionListener {
private RangeHighlighter myListenerHighlighter;
private final TextAttributes myAttributes =
- new TextAttributes(Color.white, SELECTION_BG_COLOR, JBColor.RED, EffectType.BOXED, Font.PLAIN);
+ new TextAttributes(JBColor.RED, null, null, null, Font.PLAIN);
private void navigate() {
final Object value = myRefs.getSelectedValue();
@@ -1124,21 +1100,21 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
}
@Override
- public void keyPressed(KeyEvent e) {
+ public void keyPressed(@NotNull KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER) {
navigate();
}
}
@Override
- public void mouseClicked(MouseEvent e) {
+ public void mouseClicked(@NotNull MouseEvent e) {
if (e.getClickCount() > 1) {
navigate();
}
}
@Override
- public void valueChanged(ListSelectionEvent e) {
+ public void valueChanged(@NotNull ListSelectionEvent e) {
clearSelection();
updateDialectsCombo(null);
updateExtensionsCombo();
@@ -1176,17 +1152,17 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
}
@Override
- public void keyTyped(KeyEvent e) {}
+ public void keyTyped(@NotNull KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {}
@Override
- public void mousePressed(MouseEvent e) {}
+ public void mousePressed(@NotNull MouseEvent e) {}
@Override
- public void mouseReleased(MouseEvent e) {}
+ public void mouseReleased(@NotNull MouseEvent e) {}
@Override
- public void mouseEntered(MouseEvent e) {}
+ public void mouseEntered(@NotNull MouseEvent e) {}
@Override
- public void mouseExited(MouseEvent e) {}
+ public void mouseExited(@NotNull MouseEvent e) {}
}
private void updateEditor() {
@@ -1247,7 +1223,6 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
if (myEditor.getContentComponent().hasFocus()) {
TextRange rangeInHostFile = InjectedLanguageManager.getInstance(myProject).injectedToHost(element, element.getTextRange());
selectBlockNode(findBlockNode(rangeInHostFile, true));
- updateIntersectHighlighter(myHighlighter.getStartOffset(), myHighlighter.getEndOffset());
}
}
myPsiTreeBuilder.select(element);
@@ -1270,13 +1245,6 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
return myLastParsedTextHashCode == myNewDocumentHashCode && myEditor.getContentComponent().hasFocus();
}
- @Nullable
- private PsiFile getPsiFile() {
- ViewerTreeStructure treeStructure = (ViewerTreeStructure)myPsiTreeBuilder.getTreeStructure();
- final PsiElement root = treeStructure != null ? treeStructure.getRootPsiElement() : null;
- return root instanceof PsiFile ? (PsiFile)root : null;
- }
-
@Override
public void beforeDocumentChange(DocumentEvent event) {
@@ -1297,7 +1265,7 @@ public class PsiViewerDialog extends DialogWrapper implements DataProvider, Disp
}
@Override
- public void focusGained(final FocusEvent e) {
+ public void focusGained(@NotNull final FocusEvent e) {
final Component from = e.getOppositeComponent();
if (!e.isTemporary() && from != null && !myComboBox.isPopupVisible() && isUnder(from, myParent)) {
myComboBox.setPopupVisible(true);