mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-19061 Integrate the Rearranger-plugin into core-IDE
Use 'inactive' atom condition close icon when mouse leaves the list component
This commit is contained in:
+4
-3
@@ -119,7 +119,7 @@ public class ArrangementListRowDecorator extends JPanel implements ArrangementMa
|
||||
|
||||
@Override
|
||||
public void setSelected(boolean selected) {
|
||||
// TODO den implement
|
||||
myDelegate.setSelected(selected);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@@ -133,9 +133,10 @@ public class ArrangementListRowDecorator extends JPanel implements ArrangementMa
|
||||
myDelegate.onMouseClick(event);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void onMouseExited() {
|
||||
myDelegate.onMouseExited();
|
||||
public Rectangle onMouseExited() {
|
||||
return myDelegate.onMouseExited();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+30
-6
@@ -28,6 +28,8 @@ import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import javax.swing.*;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
import java.awt.*;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
@@ -61,10 +63,13 @@ public class ArrangementMatchingRulesList extends JBList {
|
||||
@Override public void mouseMoved(MouseEvent e) { onMouseMoved(e); }
|
||||
});
|
||||
addMouseListener(new MouseAdapter() {
|
||||
@Override public void mouseExited(MouseEvent e) { onMouseExited(); }
|
||||
@Override public void mouseExited(MouseEvent e) { onMouseExited(e); }
|
||||
@Override public void mouseEntered(MouseEvent e) { onMouseEntered(e); }
|
||||
@Override public void mouseClicked(MouseEvent e) { onMouseClicked(e); }
|
||||
});
|
||||
addListSelectionListener(new ListSelectionListener() {
|
||||
@Override public void valueChanged(ListSelectionEvent e) { onSelectionChange(e); }
|
||||
});
|
||||
}
|
||||
|
||||
public void setRules(@Nullable List<StdArrangementMatchRule> rules) {
|
||||
@@ -90,13 +95,17 @@ public class ArrangementMatchingRulesList extends JBList {
|
||||
private void onMouseMoved(@NotNull MouseEvent e) {
|
||||
int i = locationToIndex(e.getPoint());
|
||||
if (i != myRowUnderMouse) {
|
||||
onMouseExited();
|
||||
onMouseExited(e);
|
||||
}
|
||||
|
||||
if (i < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (i != myRowUnderMouse) {
|
||||
onMouseEntered(e);
|
||||
}
|
||||
|
||||
ArrangementListRowDecorator decorator = myComponents.get(i);
|
||||
if (decorator == null) {
|
||||
return;
|
||||
@@ -128,19 +137,34 @@ public class ArrangementMatchingRulesList extends JBList {
|
||||
}
|
||||
}
|
||||
|
||||
private void onMouseExited() {
|
||||
private void onMouseExited(@NotNull MouseEvent e) {
|
||||
if (myRowUnderMouse < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
ArrangementListRowDecorator decorator = myComponents.get(myRowUnderMouse);
|
||||
if (decorator != null) {
|
||||
decorator.onMouseExited();
|
||||
if (decorator == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
Rectangle rectangle = decorator.onMouseExited();
|
||||
if (rectangle != null) {
|
||||
repaintScreenBounds(rectangle);
|
||||
}
|
||||
}
|
||||
|
||||
private void onMouseEntered(@NotNull MouseEvent e) {
|
||||
// TODO den implement
|
||||
myRowUnderMouse = locationToIndex(e.getPoint());
|
||||
}
|
||||
|
||||
private void onSelectionChange(@NotNull ListSelectionEvent e) {
|
||||
ListSelectionModel model = getSelectionModel();
|
||||
for (int i = e.getFirstIndex(); i <= e.getLastIndex(); i++) {
|
||||
ArrangementListRowDecorator decorator = myComponents.get(i);
|
||||
if (decorator != null) {
|
||||
decorator.setSelected(model.isSelectedIndex(i));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+7
-2
@@ -184,11 +184,16 @@ public class ArrangementAndMatchConditionComponent extends JPanel implements Arr
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void onMouseExited() {
|
||||
public Rectangle onMouseExited() {
|
||||
for (ArrangementMatchConditionComponent component : myComponents) {
|
||||
component.onMouseExited();
|
||||
Rectangle bounds = component.onMouseExited();
|
||||
if (bounds != null) {
|
||||
return bounds;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
+4
-1
@@ -224,9 +224,12 @@ public class ArrangementAtomMatchConditionComponent implements ArrangementMatchC
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void onMouseExited() {
|
||||
public Rectangle onMouseExited() {
|
||||
Rectangle result = myCloseButtonHovered ? getCloseButtonScreenLocation() : null;
|
||||
myCloseButtonHovered = false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
+3
-1
@@ -184,7 +184,9 @@ public class ArrangementEditIconMatchConditionComponent extends JPanel implement
|
||||
return "'edit' decorator for " + myDelegate.toString();
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void onMouseExited() {
|
||||
public Rectangle onMouseExited() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+3
-1
@@ -121,7 +121,9 @@ public class ArrangementGroupingMatchConditionComponent extends JPanel implement
|
||||
}
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void onMouseExited() {
|
||||
public Rectangle onMouseExited() {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
+2
-1
@@ -81,5 +81,6 @@ public interface ArrangementMatchConditionComponent {
|
||||
|
||||
void onMouseClick(@NotNull MouseEvent event);
|
||||
|
||||
void onMouseExited();
|
||||
@Nullable
|
||||
Rectangle onMouseExited();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user