Merge pull request #9247 from psikoi/screen-markers-ux

Screen markers UX improvements
This commit is contained in:
Tomas Slusny
2019-07-01 13:05:50 +02:00
committed by GitHub

View File

@@ -29,6 +29,8 @@ import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
@@ -169,12 +171,7 @@ class ScreenMarkerPanel extends JPanel
@Override
public void mousePressed(MouseEvent mouseEvent)
{
marker.getMarker().setName(nameInput.getText());
plugin.updateConfig();
nameInput.setEditable(false);
updateNameActions(false);
requestFocusInWindow();
save();
}
@Override
@@ -198,10 +195,7 @@ class ScreenMarkerPanel extends JPanel
@Override
public void mousePressed(MouseEvent mouseEvent)
{
nameInput.setEditable(false);
nameInput.setText(marker.getMarker().getName());
updateNameActions(false);
requestFocusInWindow();
cancel();
}
@Override
@@ -252,6 +246,35 @@ class ScreenMarkerPanel extends JPanel
nameInput.setPreferredSize(new Dimension(0, 24));
nameInput.getTextField().setForeground(Color.WHITE);
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(nameActions, BorderLayout.EAST);
@@ -359,10 +382,7 @@ class ScreenMarkerPanel extends JPanel
@Override
public void mousePressed(MouseEvent mouseEvent)
{
visible = !visible;
marker.getMarker().setVisible(visible);
plugin.updateConfig();
updateVisibility();
toggle(!visible);
}
@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)
{
save.setVisible(saveAndCancel);