Implemented full features and integration of Displays with the
DisplayManager form.
This commit is contained in:
parent
f8f6cabf06
commit
4d76f9db12
@ -1,3 +1,10 @@
|
|||||||
WIDTH 546
|
LAST_HEIGHT 48
|
||||||
HEIGHT 384
|
WIDTH 1071
|
||||||
BACKGROUND -10092442
|
HEIGHT 765
|
||||||
|
BACKGROUND -6697729
|
||||||
|
LAST_TEXT -6723841
|
||||||
|
LAST_FONT Serif.italic
|
||||||
|
LAST_FONTSIZE 32
|
||||||
|
LAST_BACKGROUND -16776961
|
||||||
|
LAST_WIDTH 200
|
||||||
|
LAST_DELAY 10000
|
||||||
|
186
DivaBot/src/sig/Display.java
Normal file
186
DivaBot/src/sig/Display.java
Normal file
@ -0,0 +1,186 @@
|
|||||||
|
package sig;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.Graphics;
|
||||||
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
public class Display {
|
||||||
|
Color backgroundCol=Color.BLUE;
|
||||||
|
Color textCol=Color.WHITE;
|
||||||
|
Font font=new Font("Batang",Font.PLAIN,32);
|
||||||
|
int fontSize=32;
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
|
int width=200;
|
||||||
|
int height=48;
|
||||||
|
int delay=10000;
|
||||||
|
String[] labels;
|
||||||
|
String currentText;
|
||||||
|
int cycle=0;
|
||||||
|
boolean deleted=false;
|
||||||
|
Display() {
|
||||||
|
HashMap<String,String> config = MyRobot.p.configData;
|
||||||
|
if (config.containsKey("LAST_BACKGROUND")) {
|
||||||
|
try {
|
||||||
|
backgroundCol=new Color(Integer.parseInt(config.get("LAST_BACKGROUND")));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
backgroundCol=Color.BLUE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (config.containsKey("LAST_TEXT")) {
|
||||||
|
try {
|
||||||
|
textCol=new Color(Integer.parseInt(config.get("LAST_TEXT")));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
textCol=Color.WHITE;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (config.containsKey("LAST_WIDTH")) {
|
||||||
|
try {
|
||||||
|
width=Integer.parseInt(config.get("LAST_WIDTH"));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
width=200;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (config.containsKey("LAST_HEIGHT")) {
|
||||||
|
try {
|
||||||
|
height=Integer.parseInt(config.get("LAST_HEIGHT"));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
height=48;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
x=0;
|
||||||
|
y=0;
|
||||||
|
if (config.containsKey("LAST_DELAY")) {
|
||||||
|
try {
|
||||||
|
delay=Integer.parseInt(config.get("LAST_DELAY"));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
delay=10000;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
cycle=0;
|
||||||
|
if (config.containsKey("LAST_FONTSIZE")) {
|
||||||
|
try {
|
||||||
|
fontSize=Integer.parseInt(config.get("LAST_FONTSIZE"));
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
fontSize=32;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (config.containsKey("LAST_FONT")) {
|
||||||
|
try {
|
||||||
|
font = new Font(config.get("LAST_FONT"),Font.PLAIN,fontSize);
|
||||||
|
} catch (NumberFormatException e) {
|
||||||
|
font = new Font("Batang",Font.PLAIN,fontSize);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
labels = new String[]{"Add a label!"};
|
||||||
|
currentText=interpretLabel(labels[cycle]);
|
||||||
|
Thread t = new Thread() {
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
while (!deleted) {
|
||||||
|
AdvanceCycle();
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
Thread.sleep(delay);
|
||||||
|
}
|
||||||
|
} catch (InterruptedException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void AdvanceCycle() {
|
||||||
|
cycle=(cycle+1)%labels.length;
|
||||||
|
currentText=interpretLabel(labels[cycle]);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
t.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void draw(Graphics g) {
|
||||||
|
g.setColor(backgroundCol);
|
||||||
|
g.fill3DRect(x, y, width, height, true);
|
||||||
|
g.setColor(textCol);
|
||||||
|
g.setFont(font);
|
||||||
|
g.drawString(currentText,x,y+fontSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String interpretLabel(String string){
|
||||||
|
DrawCanvas data = MyRobot.p;
|
||||||
|
try {
|
||||||
|
switch (string) {
|
||||||
|
case "Best Play":{
|
||||||
|
if (data.bestPlayTime>System.currentTimeMillis()-10000) {
|
||||||
|
return "New Record!";
|
||||||
|
} else {
|
||||||
|
return ((data.bestPlay!=null)?data.bestPlay.display():"");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "Overall Rating":{
|
||||||
|
if (data.ratingTime>System.currentTimeMillis()-10000) {
|
||||||
|
return "Rating up! "+data.lastRating+" -> "+data.overallrating;
|
||||||
|
} else {
|
||||||
|
return Integer.toString(data.overallrating);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "Song Difficulty":{
|
||||||
|
return data.difficultyRating + " - " + fullNameDifficulty(data.difficulty);
|
||||||
|
}
|
||||||
|
case "Song Title (Japanese)":{
|
||||||
|
return data.songname + " by "+data.artist;
|
||||||
|
}
|
||||||
|
case "Song Title (Romanized)":{
|
||||||
|
return ((data.romanizedname.length()>0)?data.romanizedname:data.englishname) + " by "+data.artist;
|
||||||
|
}
|
||||||
|
case "Song Title (Japanese+Romanized)":{
|
||||||
|
return (data.songname + " - " + ((data.romanizedname.length()>0)?data.romanizedname:data.englishname)) + " by "+data.artist;
|
||||||
|
}
|
||||||
|
case "Song Title (English)":{
|
||||||
|
return data.englishname + " by "+data.artist;
|
||||||
|
}
|
||||||
|
case "Song Title (Japanese+Romanized+ENG)":{
|
||||||
|
return (data.songname + " - " + ((data.romanizedname.length()>0)?(data.romanizedname.equalsIgnoreCase(data.englishname))?data.romanizedname:data.romanizedname+" ("+data.englishname+")":data.englishname)) + " by "+data.artist;
|
||||||
|
}
|
||||||
|
case "Play Count":{
|
||||||
|
return Integer.toString(data.plays)+" play"+((data.plays!=1)?"s":"");
|
||||||
|
}
|
||||||
|
case "Pass/Play Count":{
|
||||||
|
return Integer.toString(data.passes) + "/" + Integer.toString(data.plays)+" play"+((data.plays!=1)?"s":"");
|
||||||
|
}
|
||||||
|
case "Pass/Play Count (+%)":{
|
||||||
|
return (data.passes)+"/"+(data.plays)+" play"+((data.plays!=1)?"s":"")+" "+"("+((int)(Math.floor(((float)data.passes)/data.plays*100)))+"% pass rate)";
|
||||||
|
}
|
||||||
|
case "FC Count":{
|
||||||
|
return data.fcCount +" FC"+(data.fcCount==1?"":"s");
|
||||||
|
}
|
||||||
|
case "FC Count (+%)":{
|
||||||
|
return data.fcCount +" FC"+(data.fcCount==1?"":"s")+" "+((int)(Math.floor(((float)data.fcCount)/data.plays*100)))+"% FC rate";
|
||||||
|
}
|
||||||
|
default:{
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch(NullPointerException e) {
|
||||||
|
return string;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
private String fullNameDifficulty(String difficulty) {
|
||||||
|
switch (difficulty) {
|
||||||
|
case "E":{
|
||||||
|
return "Easy";
|
||||||
|
}
|
||||||
|
case "N":{
|
||||||
|
return "Normal";
|
||||||
|
}
|
||||||
|
case "H":{
|
||||||
|
return "Hard";
|
||||||
|
}
|
||||||
|
case "EX":{
|
||||||
|
return "Extreme";
|
||||||
|
}
|
||||||
|
case "EXEX":{
|
||||||
|
return "Extra Extreme";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
@ -9,6 +9,8 @@ import java.awt.GridBagConstraints;
|
|||||||
import java.awt.GridBagLayout;
|
import java.awt.GridBagLayout;
|
||||||
import java.awt.event.ActionEvent;
|
import java.awt.event.ActionEvent;
|
||||||
import java.awt.event.ActionListener;
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.ItemEvent;
|
||||||
|
import java.awt.event.ItemListener;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.MouseListener;
|
import java.awt.event.MouseListener;
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
@ -30,36 +32,42 @@ import javax.swing.JScrollPane;
|
|||||||
import javax.swing.JTextField;
|
import javax.swing.JTextField;
|
||||||
import javax.swing.ListCellRenderer;
|
import javax.swing.ListCellRenderer;
|
||||||
import javax.swing.ListSelectionModel;
|
import javax.swing.ListSelectionModel;
|
||||||
|
import javax.swing.event.DocumentEvent;
|
||||||
|
import javax.swing.event.DocumentListener;
|
||||||
import javax.swing.event.ListSelectionEvent;
|
import javax.swing.event.ListSelectionEvent;
|
||||||
import javax.swing.event.ListSelectionListener;
|
import javax.swing.event.ListSelectionListener;
|
||||||
|
import javax.swing.text.BadLocationException;
|
||||||
|
|
||||||
public class DisplayManager extends JPanel implements MouseListener,ListSelectionListener{
|
public class DisplayManager extends JPanel implements MouseListener,ListSelectionListener,ItemListener{
|
||||||
JFrame f = new JFrame();
|
public static JFrame f = new JFrame();
|
||||||
GridBagConstraints g = new GridBagConstraints();
|
static GridBagConstraints g = new GridBagConstraints();
|
||||||
Font[] fontList = null;
|
static Font[] fontList = null;
|
||||||
ColorButton colorButton;
|
static ColorButton colorButton;
|
||||||
ColorButton colorButton2;
|
static ColorButton colorButton2;
|
||||||
JTextField fontSizeInput;
|
static JTextField fontSizeInput;
|
||||||
JTextField widthInput;
|
static JTextField widthInput;
|
||||||
JTextField heightInput;
|
static JTextField heightInput;
|
||||||
JTextField delayInput;
|
static JTextField delayInput;
|
||||||
DefaultListModel model = new DefaultListModel();
|
static DefaultListModel model = new DefaultListModel();
|
||||||
DefaultListModel model2 = new DefaultListModel();
|
static DefaultListModel model2 = new DefaultListModel();
|
||||||
|
static JComboBox fonts;
|
||||||
JList labels = new JList(model);
|
JList labels = new JList(model);
|
||||||
JList displayedLabels = new JList(model2);
|
JList displayedLabels = new JList(model2);
|
||||||
String[] AVAILABLELABELS = new String[] {
|
public static Display selectedDisplay;
|
||||||
|
static String[] AVAILABLELABELS = new String[] {
|
||||||
"Best Play",
|
"Best Play",
|
||||||
"Overall Rating",
|
"Overall Rating",
|
||||||
"Song Difficulty",
|
"Song Difficulty",
|
||||||
"Song Title (Japanese)",
|
"Song Title (Japanese)",
|
||||||
"Song Title (Romanized)",
|
"Song Title (Romanized)",
|
||||||
|
"Song Title (Japanese+Romanized)",
|
||||||
"Song Title (English)",
|
"Song Title (English)",
|
||||||
"Play",
|
"Song Title (Japanese+Romanized+ENG)",
|
||||||
"Play/Pass Count (+%)",
|
"Play Count",
|
||||||
"Play/Pass Count (+%)",
|
"Pass/Play Count",
|
||||||
|
"Pass/Play Count (+%)",
|
||||||
"FC Count",
|
"FC Count",
|
||||||
"FC/Play Count",
|
"FC Count (+%)"
|
||||||
"FC/Play Count (+%)"
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DisplayManager() throws IOException {
|
DisplayManager() throws IOException {
|
||||||
@ -70,8 +78,9 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
List<Font> tempFontList = new ArrayList(Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts()));
|
List<Font> tempFontList = new ArrayList(Arrays.asList(GraphicsEnvironment.getLocalGraphicsEnvironment().getAllFonts()));
|
||||||
|
|
||||||
for (int i=0;i<tempFontList.size();i++) {
|
for (int i=0;i<tempFontList.size();i++) {
|
||||||
|
//System.out.println(tempFontList.get(i));
|
||||||
if (!tempFontList.get(i).canDisplay(12479) || tempFontList.get(i).getFontName().equals("Dialog.plain")) {
|
if (!tempFontList.get(i).canDisplay(12479) || tempFontList.get(i).getFontName().equals("Dialog.plain")) {
|
||||||
tempFontList.remove(i);
|
tempFontList.remove(i--);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -81,26 +90,85 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
g.anchor=GridBagConstraints.EAST;
|
g.anchor=GridBagConstraints.EAST;
|
||||||
addComponent(1,1,3,1,new JLabel("Background Color"));
|
addComponent(1,1,3,1,new JLabel("Background Color"));
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
colorButton = (ColorButton)addComponent(4,1,4,1,new ColorButton("Color"));
|
colorButton = (ColorButton)addComponent(4,1,4,1,new ColorButton("Color","background"));
|
||||||
JComboBox fonts = new JComboBox(fontList) {
|
fonts = new JComboBox(fontList) {
|
||||||
@Override
|
@Override
|
||||||
public Dimension getPreferredSize() {
|
public Dimension getPreferredSize() {
|
||||||
return new Dimension(300,40);
|
return new Dimension(300,40);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_BACKGROUND")) {
|
||||||
|
colorButton.setBackground(new Color(Integer.parseInt(MyRobot.p.configData.get("LAST_BACKGROUND"))));
|
||||||
|
}
|
||||||
addComponent(9,1,2,1,new JLabel(" "));
|
addComponent(9,1,2,1,new JLabel(" "));
|
||||||
fonts.setRenderer(new FontRenderer());
|
fonts.setRenderer(new FontRenderer());
|
||||||
fonts.setMaximumRowCount(5);
|
fonts.setMaximumRowCount(5);
|
||||||
|
fonts.addItemListener(this);
|
||||||
|
|
||||||
g.anchor=GridBagConstraints.EAST;
|
g.anchor=GridBagConstraints.EAST;
|
||||||
addComponent(1,3,3,1,new JLabel("Font"));
|
addComponent(1,3,3,1,new JLabel("Font"));
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
addComponent(4,3,4,1,fonts);
|
addComponent(4,3,4,1,fonts);
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_FONT")) {
|
||||||
|
for (int i=0;i<fontList.length;i++) {
|
||||||
|
if (MyRobot.p.configData.get("LAST_FONT").equals(fontList[i].getFontName())) {
|
||||||
|
fonts.setSelectedItem(fontList[i]);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//fonts.setSelectedItem(new Font(MyRobot.p.configData.get("LAST_FONT"),Font.PLAIN,32));
|
||||||
|
}
|
||||||
g.anchor=GridBagConstraints.EAST;
|
g.anchor=GridBagConstraints.EAST;
|
||||||
addComponent(1,5,3,1,new JLabel("Font Color"));
|
addComponent(1,5,3,1,new JLabel("Font Color"));
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
colorButton = (ColorButton)addComponent(4,5,4,1,new ColorButton("Color"));
|
colorButton2 = (ColorButton)addComponent(4,5,2,1,new ColorButton("Color","foreground"));
|
||||||
|
colorButton2.setColor(Color.WHITE);
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_TEXT")) {
|
||||||
|
colorButton.setBackground(new Color(Integer.parseInt(MyRobot.p.configData.get("LAST_TEXT"))));
|
||||||
|
}
|
||||||
g.anchor=GridBagConstraints.EAST;
|
g.anchor=GridBagConstraints.EAST;
|
||||||
addComponent(1,7,1,1,new JLabel("Width"));
|
addComponent(7,5,1,1,new JLabel("Size"));
|
||||||
|
g.anchor=GridBagConstraints.WEST;
|
||||||
|
fontSizeInput = (JTextField)addComponent(8,5,1,1,new JTextField() {
|
||||||
|
@Override
|
||||||
|
public Dimension getPreferredSize() {
|
||||||
|
return new Dimension(50,20);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_FONTSIZE")) {
|
||||||
|
fontSizeInput.setText(MyRobot.p.configData.get("LAST_FONTSIZE"));
|
||||||
|
}
|
||||||
|
fontSizeInput.getDocument().addDocumentListener(new DocumentListener() {
|
||||||
|
|
||||||
|
void updateField(JTextField c, DocumentEvent e) {
|
||||||
|
try {
|
||||||
|
selectedDisplay.font=new Font(selectedDisplay.font.getFontName(),Font.PLAIN,Integer.parseInt(e.getDocument().getText(0, e.getDocument().getLength())));
|
||||||
|
selectedDisplay.fontSize=Integer.parseInt(e.getDocument().getText(0, e.getDocument().getLength()));
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
c.setBackground(Color.WHITE);
|
||||||
|
} catch (NullPointerException | NumberFormatException | BadLocationException e1) {
|
||||||
|
c.setBackground(Color.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertUpdate(DocumentEvent e) {
|
||||||
|
updateField(fontSizeInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeUpdate(DocumentEvent e) {
|
||||||
|
updateField(fontSizeInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changedUpdate(DocumentEvent e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
//addComponent(1,5,3,1,new JLabel("Font Color"));
|
||||||
|
g.anchor=GridBagConstraints.EAST;
|
||||||
|
addComponent(2,7,1,1,new JLabel("Width"));
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
widthInput = (JTextField)addComponent(3,7,1,1,new JTextField() {
|
widthInput = (JTextField)addComponent(3,7,1,1,new JTextField() {
|
||||||
@Override
|
@Override
|
||||||
@ -108,6 +176,36 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
return new Dimension(50,20);
|
return new Dimension(50,20);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_WIDTH")) {
|
||||||
|
widthInput.setText(MyRobot.p.configData.get("LAST_WIDTH"));
|
||||||
|
}
|
||||||
|
widthInput.getDocument().addDocumentListener(new DocumentListener() {
|
||||||
|
|
||||||
|
void updateField(JTextField c, DocumentEvent e) {
|
||||||
|
try {
|
||||||
|
selectedDisplay.width=Integer.parseInt(e.getDocument().getText(0, e.getDocument().getLength()));
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
c.setBackground(Color.WHITE);
|
||||||
|
} catch (NullPointerException | NumberFormatException | BadLocationException e1) {
|
||||||
|
c.setBackground(Color.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertUpdate(DocumentEvent e) {
|
||||||
|
updateField(widthInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeUpdate(DocumentEvent e) {
|
||||||
|
updateField(widthInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changedUpdate(DocumentEvent e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
g.anchor=GridBagConstraints.EAST;
|
g.anchor=GridBagConstraints.EAST;
|
||||||
addComponent(4,7,2,1,new JLabel("Height"));
|
addComponent(4,7,2,1,new JLabel("Height"));
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
@ -117,6 +215,36 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
return new Dimension(50,20);
|
return new Dimension(50,20);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_HEIGHT")) {
|
||||||
|
heightInput.setText(MyRobot.p.configData.get("LAST_HEIGHT"));
|
||||||
|
}
|
||||||
|
heightInput.getDocument().addDocumentListener(new DocumentListener() {
|
||||||
|
|
||||||
|
void updateField(JTextField c, DocumentEvent e) {
|
||||||
|
try {
|
||||||
|
selectedDisplay.height=Integer.parseInt(e.getDocument().getText(0, e.getDocument().getLength()));
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
c.setBackground(Color.WHITE);
|
||||||
|
} catch (NullPointerException | NumberFormatException | BadLocationException e1) {
|
||||||
|
c.setBackground(Color.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertUpdate(DocumentEvent e) {
|
||||||
|
updateField(heightInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeUpdate(DocumentEvent e) {
|
||||||
|
updateField(heightInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changedUpdate(DocumentEvent e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
addComponent(1,10,6,1,new JLabel(" "));
|
addComponent(1,10,6,1,new JLabel(" "));
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
@ -126,6 +254,36 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
return new Dimension(50,20);
|
return new Dimension(50,20);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
delayInput.getDocument().addDocumentListener(new DocumentListener() {
|
||||||
|
|
||||||
|
void updateField(JTextField c, DocumentEvent e) {
|
||||||
|
try {
|
||||||
|
selectedDisplay.delay=Integer.parseInt(e.getDocument().getText(0, e.getDocument().getLength()));
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
c.setBackground(Color.WHITE);
|
||||||
|
} catch (NullPointerException | NumberFormatException | BadLocationException e1) {
|
||||||
|
c.setBackground(Color.RED);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertUpdate(DocumentEvent e) {
|
||||||
|
updateField(delayInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void removeUpdate(DocumentEvent e) {
|
||||||
|
updateField(delayInput,e);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void changedUpdate(DocumentEvent e) {
|
||||||
|
}
|
||||||
|
|
||||||
|
});
|
||||||
|
if (MyRobot.p.configData.containsKey("LAST_DELAY")) {
|
||||||
|
delayInput.setText(MyRobot.p.configData.get("LAST_DELAY"));
|
||||||
|
}
|
||||||
g.anchor=GridBagConstraints.WEST;
|
g.anchor=GridBagConstraints.WEST;
|
||||||
addComponent(6,10,1,1,new JLabel("ms"));
|
addComponent(6,10,1,1,new JLabel("ms"));
|
||||||
|
|
||||||
@ -170,12 +328,13 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
addComponent(7,12,2,1,new JLabel("Active Labels:"));
|
addComponent(7,12,2,1,new JLabel("Active Labels:"));
|
||||||
|
|
||||||
widthInput.setText("200");
|
widthInput.setText("200");
|
||||||
heightInput.setText("200");
|
heightInput.setText("48");
|
||||||
|
fontSizeInput.setText("32");
|
||||||
delayInput.setText("10000");
|
delayInput.setText("10000");
|
||||||
f.add(this);
|
f.add(this);
|
||||||
f.pack();
|
f.pack();
|
||||||
f.setResizable(false);
|
f.setResizable(false);
|
||||||
//f.setVisible(true);
|
f.setVisible(false);
|
||||||
}
|
}
|
||||||
private Component addComponent(int x, int y, int w, int h,Component component) {
|
private Component addComponent(int x, int y, int w, int h,Component component) {
|
||||||
g.gridx=x;
|
g.gridx=x;
|
||||||
@ -185,6 +344,46 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
this.add(component,g);
|
this.add(component,g);
|
||||||
return component;
|
return component;
|
||||||
}
|
}
|
||||||
|
public static void setupSettings(Display d) {
|
||||||
|
selectedDisplay=d;
|
||||||
|
colorButton.setBackground(d.backgroundCol);
|
||||||
|
MyRobot.p.configData.put("LAST_BACKGROUND",Integer.toString(d.backgroundCol.getRGB()));
|
||||||
|
colorButton2.setBackground(d.textCol);
|
||||||
|
MyRobot.p.configData.put("LAST_TEXT",Integer.toString(d.textCol.getRGB()));
|
||||||
|
for (int i=0;i<fonts.getItemCount();i++) {
|
||||||
|
if (d.font.getFontName().equals(((Font)(fonts.getItemAt(i))).getFontName())) {
|
||||||
|
fonts.setSelectedItem(fonts.getItemAt(i));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
MyRobot.p.configData.put("LAST_FONT",d.font.getFontName());
|
||||||
|
widthInput.setText(Integer.toString(d.width));
|
||||||
|
MyRobot.p.configData.put("LAST_WIDTH",Integer.toString(d.width));
|
||||||
|
heightInput.setText(Integer.toString(d.height));
|
||||||
|
MyRobot.p.configData.put("LAST_HEIGHT",Integer.toString(d.height));
|
||||||
|
delayInput.setText(Integer.toString(d.delay));
|
||||||
|
MyRobot.p.configData.put("LAST_DELAY",Integer.toString(d.delay));
|
||||||
|
fontSizeInput.setText(Integer.toString(d.fontSize));
|
||||||
|
MyRobot.p.configData.put("LAST_FONTSIZE",Integer.toString(d.fontSize));
|
||||||
|
model.clear();
|
||||||
|
model2.clear();
|
||||||
|
for (int i=0;i<d.labels.length;i++) {
|
||||||
|
if (!d.labels[i].equalsIgnoreCase("Add a label!")) {
|
||||||
|
model2.add(i, d.labels[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
first:
|
||||||
|
for (int j=0;j<AVAILABLELABELS.length;j++) {
|
||||||
|
String labelCheck = AVAILABLELABELS[j];
|
||||||
|
for (int i=0;i<d.labels.length;i++) {
|
||||||
|
if (labelCheck.equalsIgnoreCase(d.labels[i])) {
|
||||||
|
continue first;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
model.add(model.getSize(),labelCheck);
|
||||||
|
}
|
||||||
|
f.setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
class FontRenderer extends JLabel
|
class FontRenderer extends JLabel
|
||||||
implements ListCellRenderer {
|
implements ListCellRenderer {
|
||||||
@ -215,7 +414,8 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
|
|
||||||
class ColorButton extends JButton{
|
class ColorButton extends JButton{
|
||||||
protected Color col = Color.BLUE;
|
protected Color col = Color.BLUE;
|
||||||
public ColorButton(String string) {
|
String type = "background";
|
||||||
|
public ColorButton(String string,final String type) {
|
||||||
super(string);
|
super(string);
|
||||||
this.setColor(col);
|
this.setColor(col);
|
||||||
this.addActionListener(new ActionListener(){
|
this.addActionListener(new ActionListener(){
|
||||||
@ -224,6 +424,16 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
Color c = MyRobot.CP.getColor(col);
|
Color c = MyRobot.CP.getColor(col);
|
||||||
if (c!=null) {
|
if (c!=null) {
|
||||||
((ColorButton)(e.getSource())).setColor(c);
|
((ColorButton)(e.getSource())).setColor(c);
|
||||||
|
switch (type) {
|
||||||
|
case "background":{
|
||||||
|
selectedDisplay.backgroundCol=c;
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
}break;
|
||||||
|
case "foreground":{
|
||||||
|
selectedDisplay.textCol=c;
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
}break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@ -272,7 +482,12 @@ public class DisplayManager extends JPanel implements MouseListener,ListSelectio
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public void valueChanged(ListSelectionEvent e) {
|
public void valueChanged(ListSelectionEvent e) {
|
||||||
// TODO Auto-generated method stub
|
}
|
||||||
|
@Override
|
||||||
|
public void itemStateChanged(ItemEvent e) {
|
||||||
|
if (selectedDisplay!=null) {
|
||||||
|
selectedDisplay.font=new Font(((Font)fonts.getSelectedItem()).getFontName(),Font.PLAIN,selectedDisplay.fontSize);
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -18,6 +18,7 @@ import java.awt.event.KeyEvent;
|
|||||||
import java.awt.event.KeyListener;
|
import java.awt.event.KeyListener;
|
||||||
import java.awt.event.MouseEvent;
|
import java.awt.event.MouseEvent;
|
||||||
import java.awt.event.MouseListener;
|
import java.awt.event.MouseListener;
|
||||||
|
import java.awt.event.MouseMotionListener;
|
||||||
import java.awt.event.WindowEvent;
|
import java.awt.event.WindowEvent;
|
||||||
import java.awt.event.WindowListener;
|
import java.awt.event.WindowListener;
|
||||||
import java.awt.font.TextAttribute;
|
import java.awt.font.TextAttribute;
|
||||||
@ -28,12 +29,15 @@ import java.io.IOException;
|
|||||||
import java.net.URLEncoder;
|
import java.net.URLEncoder;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.text.AttributedString;
|
import java.text.AttributedString;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Timer;
|
import java.util.Timer;
|
||||||
import java.util.TimerTask;
|
import java.util.TimerTask;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
|
import javax.swing.JOptionPane;
|
||||||
import javax.swing.JPanel;
|
import javax.swing.JPanel;
|
||||||
|
|
||||||
import org.json.JSONArray;
|
import org.json.JSONArray;
|
||||||
@ -45,7 +49,7 @@ import sig.utils.FileUtils;
|
|||||||
import sig.utils.ImageUtils;
|
import sig.utils.ImageUtils;
|
||||||
import sig.utils.TextUtils;
|
import sig.utils.TextUtils;
|
||||||
|
|
||||||
public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,WindowListener,MouseListener{
|
public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,WindowListener,MouseListener,MouseMotionListener{
|
||||||
String difficulty;
|
String difficulty;
|
||||||
String panelText;
|
String panelText;
|
||||||
//Font programFont = new Font("Alata Regular", Font.PLAIN, 32);
|
//Font programFont = new Font("Alata Regular", Font.PLAIN, 32);
|
||||||
@ -76,6 +80,9 @@ public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,
|
|||||||
boolean targetBuffer=false;
|
boolean targetBuffer=false;
|
||||||
static Color background = new Color(170,170,170);
|
static Color background = new Color(170,170,170);
|
||||||
public static HashMap<String,String> configData = new HashMap<String,String>();
|
public static HashMap<String,String> configData = new HashMap<String,String>();
|
||||||
|
List<Display> displays = new ArrayList<Display>();
|
||||||
|
public static Display selectedDisplay = null;
|
||||||
|
public static Display draggedDisplay = null;
|
||||||
DrawCanvas() throws FontFormatException, IOException {
|
DrawCanvas() throws FontFormatException, IOException {
|
||||||
loadConfig();
|
loadConfig();
|
||||||
addConfigButton = ImageIO.read(new File("addDisplay.png"));
|
addConfigButton = ImageIO.read(new File("addDisplay.png"));
|
||||||
@ -209,41 +216,9 @@ public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,
|
|||||||
g2.drawImage(addConfigButton,getWidth()-addConfigButton.getWidth()+1,0,this);
|
g2.drawImage(addConfigButton,getWidth()-addConfigButton.getWidth()+1,0,this);
|
||||||
g2.drawImage(backgroundColorButton,getWidth()-backgroundColorButton.getWidth()+1,backgroundColorButton.getHeight()+1,this);
|
g2.drawImage(backgroundColorButton,getWidth()-backgroundColorButton.getWidth()+1,backgroundColorButton.getHeight()+1,this);
|
||||||
|
|
||||||
|
for (int i=0;i<displays.size();i++) {
|
||||||
// String songDisplay = ((romanizedname.length()>0)?romanizedname:englishname) + " - " + artist;
|
displays.get(i).draw(g);
|
||||||
// Rectangle2D bounds = TextUtils.calculateStringBoundsFont(songDisplay, programFont);
|
}
|
||||||
// if (bounds.getWidth()>675) {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFontSmall, 8, 42, 1, Color.WHITE, new Color(0,0,0,64), songDisplay);
|
|
||||||
// } else {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 8, 42, 1, Color.WHITE, new Color(0,0,0,64), songDisplay);
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// if ((bestPlayTime>System.currentTimeMillis()-10000)) {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 8, 935+42, 1, new Color(220,220,255,(int)Math.min(((System.currentTimeMillis()-bestPlayTime))/5,255)), new Color(0,0,0,64),"New Record!");
|
|
||||||
// } else {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFontSmall, 8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),((bestPlay!=null)?bestPlay.display():""));
|
|
||||||
// }
|
|
||||||
// if ((ratingTime>System.currentTimeMillis()-10000)) {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFontSmall, 484+8, 935+42, 1, new Color(220,220,255,(int)Math.min(((System.currentTimeMillis()-ratingTime))/5,255)), new Color(0,0,0,64),"Rating up! "+lastRating+" -> "+overallrating);
|
|
||||||
// } else {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 484+8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),Integer.toString(overallrating));
|
|
||||||
// }
|
|
||||||
// if (displayTimer%3==0) {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 968+8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),difficultyRating + " - " + fullNameDifficulty());
|
|
||||||
// } else
|
|
||||||
// if (displayTimer%3==1) {
|
|
||||||
// if (plays>0) {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFontSmall, 968+8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),""+(passes)+"/"+(plays)+" play"+((plays!=1)?"s":"")+" "+"("+((int)(Math.floor(((float)passes)/plays*100)))+"% pass rate)");
|
|
||||||
// } else {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 968+8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),"No plays");
|
|
||||||
// }
|
|
||||||
// } else {
|
|
||||||
// if (fcCount>0) {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 968+8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),fcCount +" FC"+(fcCount==1?"":"s")+" "+((int)(Math.floor(((float)fcCount)/plays*100)))+"% FC rate");
|
|
||||||
// } else {
|
|
||||||
// DrawUtils.drawOutlineText(g2, programFont, 968+8, 935+42, 1, Color.WHITE, new Color(0,0,0,64),difficultyRating + " - " + fullNameDifficulty());
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private String fullNameDifficulty() {
|
private String fullNameDifficulty() {
|
||||||
@ -275,6 +250,20 @@ public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void keyPressed(KeyEvent e) {
|
public void keyPressed(KeyEvent e) {
|
||||||
|
if (selectedDisplay!=null && e.getKeyCode()==KeyEvent.VK_DELETE) {
|
||||||
|
DeleteDisplay();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DeleteDisplay() {
|
||||||
|
if (selectedDisplay!=null) {
|
||||||
|
int dialogResult = JOptionPane.showConfirmDialog (null, "Are you sure you would like to delete this display box?","Warning",JOptionPane.YES_NO_OPTION);
|
||||||
|
if(dialogResult == JOptionPane.YES_OPTION){
|
||||||
|
selectedDisplay.deleted=true;
|
||||||
|
selectedDisplay=(displays.remove(selectedDisplay))?null:selectedDisplay;
|
||||||
|
repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -354,34 +343,83 @@ public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mousePressed(MouseEvent e) {
|
public void mousePressed(MouseEvent e) {
|
||||||
|
Point cursor = GetCursorPosition(e);
|
||||||
|
switch (e.getButton()) {
|
||||||
|
case MouseEvent.BUTTON3:{
|
||||||
|
selectedDisplay=null;
|
||||||
|
for (int i=0;i<displays.size();i++) {
|
||||||
|
Display d = displays.get(i);
|
||||||
|
if (cursor.x>=d.x&&
|
||||||
|
cursor.x<=d.x+d.width&&
|
||||||
|
cursor.y>=d.y&&
|
||||||
|
cursor.y<=d.y+d.height) {
|
||||||
|
selectedDisplay=d;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
DeleteDisplay();
|
||||||
|
}break;
|
||||||
|
case MouseEvent.BUTTON1:{
|
||||||
|
//System.out.println(cursor+"/"+addConfigButton.getHeight());
|
||||||
|
if (cursor.x>=getWidth()-addConfigButton.getWidth()&&
|
||||||
|
cursor.x<=getWidth()&&
|
||||||
|
cursor.y>=0&&
|
||||||
|
cursor.y<=addConfigButton.getHeight()) {
|
||||||
|
Display d = new Display();
|
||||||
|
displays.add(d);
|
||||||
|
selectedDisplay=d;
|
||||||
|
DisplayManager.setupSettings(selectedDisplay);
|
||||||
|
return;
|
||||||
|
} else
|
||||||
|
if (cursor.x>=getWidth()-addConfigButton.getWidth()&&
|
||||||
|
cursor.x<=getWidth()&&
|
||||||
|
cursor.y>=addConfigButton.getHeight()+1&&
|
||||||
|
cursor.y<=addConfigButton.getHeight()+1+addConfigButton.getHeight()) {
|
||||||
|
Color c = MyRobot.CP.getBackgroundColor();
|
||||||
|
if (c!=null) {
|
||||||
|
configData.put("BACKGROUND",Integer.toString(c.getRGB()));
|
||||||
|
applyConfig();
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Display previousDisplay = selectedDisplay;
|
||||||
|
selectedDisplay=null;
|
||||||
|
for (int i=0;i<displays.size();i++) {
|
||||||
|
Display d = displays.get(i);
|
||||||
|
if (cursor.x>=d.x&&
|
||||||
|
cursor.x<=d.x+d.width&&
|
||||||
|
cursor.y>=d.y&&
|
||||||
|
cursor.y<=d.y+d.height) {
|
||||||
|
selectedDisplay=d;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (selectedDisplay==null) {
|
||||||
|
MyRobot.FRAME.setCursor(Cursor.getDefaultCursor());
|
||||||
|
DisplayManager.f.setVisible(false);
|
||||||
|
} else {
|
||||||
|
MyRobot.FRAME.setCursor(new Cursor(Cursor.MOVE_CURSOR));
|
||||||
|
draggedDisplay=selectedDisplay;
|
||||||
|
if (selectedDisplay.equals(previousDisplay)) {
|
||||||
|
//System.out.println("Double click");
|
||||||
|
DisplayManager.setupSettings(selectedDisplay);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private Point GetCursorPosition(MouseEvent e) {
|
||||||
Point cursor = e.getPoint();
|
Point cursor = e.getPoint();
|
||||||
cursor.translate(-MyRobot.FRAME.getInsets().left,-MyRobot.FRAME.getInsets().top);
|
cursor.translate(-MyRobot.FRAME.getInsets().left,-MyRobot.FRAME.getInsets().top);
|
||||||
System.out.println(cursor+"/"+addConfigButton.getHeight());
|
return cursor;
|
||||||
if (cursor.x>=getWidth()-addConfigButton.getWidth()&&
|
|
||||||
cursor.x<=getWidth()&&
|
|
||||||
cursor.y>=0&&
|
|
||||||
cursor.y<=addConfigButton.getHeight()) {
|
|
||||||
MyRobot.FRAME.setCursor(new Cursor(Cursor.HAND_CURSOR));
|
|
||||||
} else
|
|
||||||
if (cursor.x>=getWidth()-addConfigButton.getWidth()&&
|
|
||||||
cursor.x<=getWidth()&&
|
|
||||||
cursor.y>=addConfigButton.getHeight()+1&&
|
|
||||||
cursor.y<=addConfigButton.getHeight()+1+addConfigButton.getHeight()) {
|
|
||||||
Color c = MyRobot.CP.getBackgroundColor();
|
|
||||||
if (c!=null) {
|
|
||||||
configData.put("BACKGROUND",Integer.toString(c.getRGB()));
|
|
||||||
applyConfig();
|
|
||||||
}
|
|
||||||
} else
|
|
||||||
{
|
|
||||||
MyRobot.FRAME.setCursor(Cursor.getDefaultCursor());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void mouseReleased(MouseEvent e) {
|
public void mouseReleased(MouseEvent e) {
|
||||||
// TODO Auto-generated method stub
|
draggedDisplay=null;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -395,4 +433,20 @@ public class DrawCanvas extends JPanel implements KeyListener,ComponentListener,
|
|||||||
// TODO Auto-generated method stub
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseDragged(MouseEvent e) {
|
||||||
|
if (draggedDisplay!=null) {
|
||||||
|
Point cursor = GetCursorPosition(e);
|
||||||
|
draggedDisplay.x=(int)(Math.floor((cursor.x-draggedDisplay.width/2)/8)*8);
|
||||||
|
draggedDisplay.y=(int)(Math.floor((cursor.y-draggedDisplay.height/2)/8)*8);
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void mouseMoved(MouseEvent e) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -104,7 +104,13 @@ public class ListTransferHandler extends TransferHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
System.out.println("Selected indexes: "+Arrays.toString(indices));
|
String[] labels = new String[listModel.getSize()];
|
||||||
|
for (int i=0;i<listModel.getSize();i++) {
|
||||||
|
labels[i]=(String)listModel.get(i);
|
||||||
|
}
|
||||||
|
DisplayManager.selectedDisplay.labels=labels;
|
||||||
|
MyRobot.p.repaint();
|
||||||
|
//System.out.println("Selected indexes: "+Arrays.toString(indices));
|
||||||
for (int i=0;i<indices.length;i++) {
|
for (int i=0;i<indices.length;i++) {
|
||||||
if (addIndex<indices[i]) {
|
if (addIndex<indices[i]) {
|
||||||
listModel.add(addIndex, listModel.get(indices[i]));
|
listModel.add(addIndex, listModel.get(indices[i]));
|
||||||
|
@ -602,6 +602,8 @@ public class MyRobot{
|
|||||||
FRAME.addComponentListener(p);
|
FRAME.addComponentListener(p);
|
||||||
FRAME.addWindowListener(p);
|
FRAME.addWindowListener(p);
|
||||||
FRAME.addMouseListener(p);
|
FRAME.addMouseListener(p);
|
||||||
|
FRAME.addMouseMotionListener(p);
|
||||||
|
FRAME.addKeyListener(p);
|
||||||
if (DrawCanvas.configData.containsKey("WIDTH")&&DrawCanvas.configData.containsKey("HEIGHT")) {
|
if (DrawCanvas.configData.containsKey("WIDTH")&&DrawCanvas.configData.containsKey("HEIGHT")) {
|
||||||
try {
|
try {
|
||||||
FRAME.setSize(
|
FRAME.setSize(
|
||||||
|
Loading…
x
Reference in New Issue
Block a user