Fix visiblity issue with markers in NodesInputPanel.
This commit is contained in:
parent
1a664b8a3c
commit
7de61ac27e
@ -91,6 +91,17 @@ public class NodesInputPanel extends JPanel
|
|||||||
inputChangeListeners.add(listener);
|
inputChangeListeners.add(listener);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setVisible(boolean visible) {
|
||||||
|
super.setVisible(visible);
|
||||||
|
for (JTextField input: nodeInputs) {
|
||||||
|
MarkerOverlay marker = markerTrackers.getOrDefault(input, null);
|
||||||
|
if (marker != null) {
|
||||||
|
marker.setVisible(visible && !input.getText().trim().isEmpty());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void setEnabled(boolean enabled) {
|
public void setEnabled(boolean enabled) {
|
||||||
for (JComponent component: components) {
|
for (JComponent component: components) {
|
||||||
@ -285,7 +296,10 @@ public class NodesInputPanel extends JPanel
|
|||||||
*/
|
*/
|
||||||
protected void nextInputToFill() {
|
protected void nextInputToFill() {
|
||||||
boolean found = false;
|
boolean found = false;
|
||||||
for (int i = 1; i < nodeInputs.size() && !found; ++i) {
|
if (inputToFillIndex == -1) {
|
||||||
|
inputToFillIndex = 0;
|
||||||
|
}
|
||||||
|
for (int i = 0; i < nodeInputs.size() && !found; ++i) {
|
||||||
int nextIndex = (i + inputToFillIndex) % nodeInputs.size();
|
int nextIndex = (i + inputToFillIndex) % nodeInputs.size();
|
||||||
JTextField input = nodeInputs.get(nextIndex);
|
JTextField input = nodeInputs.get(nextIndex);
|
||||||
if (input.getText().trim().isEmpty()) {
|
if (input.getText().trim().isEmpty()) {
|
||||||
@ -300,9 +314,9 @@ public class NodesInputPanel extends JPanel
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(Point point) {
|
public void mouseClicked(Point point) {
|
||||||
Node node = graph.findClosestNode(point);
|
|
||||||
JTextField input = getInputToFill();
|
JTextField input = getInputToFill();
|
||||||
if (input != null) {
|
if (input != null) {
|
||||||
|
Node node = graph.findClosestNode(point);
|
||||||
input.setText(String.valueOf(node.getId()));
|
input.setText(String.valueOf(node.getId()));
|
||||||
nextInputToFill();
|
nextInputToFill();
|
||||||
}
|
}
|
||||||
@ -313,6 +327,9 @@ public class NodesInputPanel extends JPanel
|
|||||||
if (graph != this.graph) {
|
if (graph != this.graph) {
|
||||||
this.clear();
|
this.clear();
|
||||||
this.graph = graph;
|
this.graph = graph;
|
||||||
|
|
||||||
|
// Disable if previously disabled...
|
||||||
|
setEnabled(this.isEnabled());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,6 +5,8 @@ import java.awt.Component;
|
|||||||
import java.awt.Font;
|
import java.awt.Font;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.ComponentAdapter;
|
||||||
|
import java.awt.event.ComponentEvent;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -206,6 +208,24 @@ public class ShortestPathPanel extends JPanel {
|
|||||||
startAlgoButton.setEnabled(allNotNull);
|
startAlgoButton.setEnabled(allNotNull);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
addComponentListener(new ComponentAdapter() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentShown(ComponentEvent e) {
|
||||||
|
setEnabled(true);
|
||||||
|
nodesInputPanel.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void componentHidden(ComponentEvent e) {
|
||||||
|
setEnabled(false);
|
||||||
|
nodesInputPanel.setVisible(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
setEnabled(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
Reference in New Issue
Block a user