Merge pull request #9247 from psikoi/screen-markers-ux
Screen markers UX improvements
This commit is contained in:
@@ -29,6 +29,8 @@ import java.awt.BorderLayout;
|
|||||||
import java.awt.Color;
|
import java.awt.Color;
|
||||||
import java.awt.Dimension;
|
import java.awt.Dimension;
|
||||||
import java.awt.FlowLayout;
|
import java.awt.FlowLayout;
|
||||||
|
import java.awt.event.KeyAdapter;
|
||||||
|
import java.awt.event.KeyEvent;
|
||||||
import java.awt.event.MouseAdapter;
|
import java.awt.event.MouseAdapter;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.WindowAdapter;
|
import java.awt.event.WindowAdapter;
|
||||||
@@ -169,12 +171,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent mouseEvent)
|
public void mousePressed(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
marker.getMarker().setName(nameInput.getText());
|
save();
|
||||||
plugin.updateConfig();
|
|
||||||
|
|
||||||
nameInput.setEditable(false);
|
|
||||||
updateNameActions(false);
|
|
||||||
requestFocusInWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -198,10 +195,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent mouseEvent)
|
public void mousePressed(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
nameInput.setEditable(false);
|
cancel();
|
||||||
nameInput.setText(marker.getMarker().getName());
|
|
||||||
updateNameActions(false);
|
|
||||||
requestFocusInWindow();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -252,6 +246,35 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
nameInput.setPreferredSize(new Dimension(0, 24));
|
nameInput.setPreferredSize(new Dimension(0, 24));
|
||||||
nameInput.getTextField().setForeground(Color.WHITE);
|
nameInput.getTextField().setForeground(Color.WHITE);
|
||||||
nameInput.getTextField().setBorder(new EmptyBorder(0, 8, 0, 0));
|
nameInput.getTextField().setBorder(new EmptyBorder(0, 8, 0, 0));
|
||||||
|
nameInput.addKeyListener(new KeyAdapter()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void keyPressed(KeyEvent e)
|
||||||
|
{
|
||||||
|
if (e.getKeyCode() == KeyEvent.VK_ENTER)
|
||||||
|
{
|
||||||
|
save();
|
||||||
|
}
|
||||||
|
else if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
|
||||||
|
{
|
||||||
|
cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
nameInput.getTextField().addMouseListener(new MouseAdapter()
|
||||||
|
{
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent mouseEvent)
|
||||||
|
{
|
||||||
|
preview(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent mouseEvent)
|
||||||
|
{
|
||||||
|
preview(false);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
nameWrapper.add(nameInput, BorderLayout.CENTER);
|
nameWrapper.add(nameInput, BorderLayout.CENTER);
|
||||||
nameWrapper.add(nameActions, BorderLayout.EAST);
|
nameWrapper.add(nameActions, BorderLayout.EAST);
|
||||||
@@ -359,10 +382,7 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent mouseEvent)
|
public void mousePressed(MouseEvent mouseEvent)
|
||||||
{
|
{
|
||||||
visible = !visible;
|
toggle(!visible);
|
||||||
marker.getMarker().setVisible(visible);
|
|
||||||
plugin.updateConfig();
|
|
||||||
updateVisibility();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -424,6 +444,42 @@ class ScreenMarkerPanel extends JPanel
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void preview(boolean on)
|
||||||
|
{
|
||||||
|
if (visible)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
marker.getMarker().setVisible(on);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void toggle(boolean on)
|
||||||
|
{
|
||||||
|
visible = on;
|
||||||
|
marker.getMarker().setVisible(visible);
|
||||||
|
plugin.updateConfig();
|
||||||
|
updateVisibility();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void save()
|
||||||
|
{
|
||||||
|
marker.getMarker().setName(nameInput.getText());
|
||||||
|
plugin.updateConfig();
|
||||||
|
|
||||||
|
nameInput.setEditable(false);
|
||||||
|
updateNameActions(false);
|
||||||
|
requestFocusInWindow();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void cancel()
|
||||||
|
{
|
||||||
|
nameInput.setEditable(false);
|
||||||
|
nameInput.setText(marker.getMarker().getName());
|
||||||
|
updateNameActions(false);
|
||||||
|
requestFocusInWindow();
|
||||||
|
}
|
||||||
|
|
||||||
private void updateNameActions(boolean saveAndCancel)
|
private void updateNameActions(boolean saveAndCancel)
|
||||||
{
|
{
|
||||||
save.setVisible(saveAndCancel);
|
save.setVisible(saveAndCancel);
|
||||||
|
|||||||
Reference in New Issue
Block a user