From 4e03806a4a5703210270e5e4a5229de000f1a3f3 Mon Sep 17 00:00:00 2001 From: sigonasr2 Date: Sun, 29 Oct 2017 17:14:14 -0500 Subject: [PATCH] Completed implementation of Controller Module. --- sigIRCv2.jar | Bin 5618663 -> 5625201 bytes src/sig/modules/Controller/Axis.java | 42 ++- .../ControlConfigurationWindow.java | 52 ++- .../Controller/DataValidationReason.java | 7 + src/sig/modules/Controller/Element.java | 11 + src/sig/modules/Controller/RepeatedKey.java | 79 ++++ src/sig/modules/ControllerModule.java | 339 ++++++++++++------ 7 files changed, 412 insertions(+), 118 deletions(-) create mode 100644 src/sig/modules/Controller/DataValidationReason.java create mode 100644 src/sig/modules/Controller/RepeatedKey.java diff --git a/sigIRCv2.jar b/sigIRCv2.jar index 7cd43f25665cae32473c2bcbfecfdd0c103bfbf0..5341094b800825db19d114dcaf8541a0c5d600d5 100644 GIT binary patch delta 66064 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 diff --git a/src/sig/modules/Controller/Axis.java b/src/sig/modules/Controller/Axis.java index 4e62ec3..d38038d 100644 --- a/src/sig/modules/Controller/Axis.java +++ b/src/sig/modules/Controller/Axis.java @@ -93,6 +93,16 @@ public class Axis extends Element{ pct_height*parent.getControllerImage().getHeight(sigIRC.panel)); } } + + public void drawIndicator(Graphics g) { + if (visible) { + GetAxisIndicatorDisplay(g,this, + parent.getPosition().getX()+pct_x*parent.getControllerImage().getWidth(sigIRC.panel), + parent.getPosition().getY()+pct_y*parent.getControllerImage().getHeight(sigIRC.panel), + pct_width*parent.getControllerImage().getWidth(sigIRC.panel), + pct_height*parent.getControllerImage().getHeight(sigIRC.panel)); + } + } public Color getSelectionColor() { return backgroundColor; @@ -224,18 +234,38 @@ public class Axis extends Element{ Color color_identity = g.getColor(); g.setColor(a.backgroundColor); g.fillOval((int)x, (int)y, (int)xscale, (int)yscale); - g.setColor(a.indicatorColor); - for (int i=-1;i<2;i++) { - for (int j=-1;j<2;j++) { - g.drawOval((int)(((xval+1)*12*(xscale/32d))+i+x), (int)(((yval+1)*12*(yscale/32d))+j+y), (int)(8d*(xscale/32d)), (int)(8d*(yscale/32d))); - } - } g.setColor(color_identity); } } + public static void GetAxisIndicatorDisplay(Graphics g, Axis a, double x, double y, double xscale, double yscale) { + if (!a.twoWayAxis) { + double xval=0; + double yval=0; + if (a.identifiers.size()>0 && a.identifiers.get(0)!=null) { + xval = a.parent_controller.getAxisValue(a.identifiers.get(0))*((a.x_invert)?-1:1); + } + if (a.identifiers.size()>1 && a.identifiers.get(1)!=null) { + yval = a.parent_controller.getAxisValue(a.identifiers.get(1))*((a.y_invert)?-1:1); + } + DrawIndicator(g, a, x, y, xscale, yscale, xval, yval); + } + } + + private static void DrawIndicator(Graphics g, Axis a, double x, double y, double xscale, double yscale, double xval, + double yval) { + g.setColor(a.indicatorColor); + for (int i=-1;i<2;i++) { + for (int j=-1;j<2;j++) { + g.drawOval((int)(((xval+1)*12*(xscale/32d))+i+x), (int)(((yval+1)*12*(yscale/32d))+j+y), (int)(8d*(xscale/32d)), (int)(8d*(yscale/32d))); + } + } + } + + + public String getSaveString() { StringBuilder sb = new StringBuilder(); sb.append(pct_x);sb.append(","); diff --git a/src/sig/modules/Controller/ControlConfigurationWindow.java b/src/sig/modules/Controller/ControlConfigurationWindow.java index 493d73c..a501432 100644 --- a/src/sig/modules/Controller/ControlConfigurationWindow.java +++ b/src/sig/modules/Controller/ControlConfigurationWindow.java @@ -30,6 +30,7 @@ import javax.swing.JDialog; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JLayeredPane; +import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.JRadioButton; import javax.swing.JTextField; @@ -41,6 +42,7 @@ import javax.swing.event.DocumentListener; import sig.ColorPanel; import sig.sigIRC; import sig.modules.ControllerModule; +import sig.utils.TextUtils; public class ControlConfigurationWindow extends JFrame implements WindowListener{ DialogType dialog; @@ -59,6 +61,8 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener int axis_width=32,axis_height=32; JButton backgroundColor,indicatorColor; boolean x_invert,y_invert,axis_invert; + public static Color lastpicked_back_col = Color.BLACK; + public static Color lastpicked_indicator_col = Color.WHITE; int orientation=0; //0=Left-to-Right, 1=Right-to-Left, 2=Bottom-to-Top, 3=Top-to-Bottom JCheckBox width_invert,height_invert; java.awt.Component extra_space; @@ -119,8 +123,9 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener ActionListener backgroundColorListener = new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { - Color selectedcol = sigIRC.colorpanel.getBackgroundColor(null); + Color selectedcol = sigIRC.colorpanel.getBackgroundColor(lastpicked_back_col); if (selectedcol!=null) { + lastpicked_back_col = selectedcol; axis_background_col = selectedcol; backgroundColor.setBackground(axis_background_col); } @@ -129,8 +134,9 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener ActionListener indicatorColorListener = new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { - Color selectedcol = sigIRC.colorpanel.getBackgroundColor(null); + Color selectedcol = sigIRC.colorpanel.getBackgroundColor(lastpicked_indicator_col); if (selectedcol!=null) { + lastpicked_indicator_col = selectedcol; axis_indicator_col = selectedcol; indicatorColor.setBackground(axis_indicator_col); } @@ -145,7 +151,8 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener ActionListener createbuttonListener = new ActionListener(){ @Override public void actionPerformed(ActionEvent ev) { - if (DataIsValid()) { + DataValidationReason err_check = DataIsValid(); + if (err_check == DataValidationReason.GOOD) { Axis a = ConstructTemporaryAxis(); module.setTemporaryAxis(a); module.setMode(EditMode.DRAGAXISSELECTION); @@ -153,11 +160,41 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener module.getConfigurationWindow().dispatchEvent(new WindowEvent(module.getConfigurationWindow(),WindowEvent.WINDOW_CLOSING)); //module.getConfigurationWindow().setVisible(false); //module.getConfigurationWindow().dispose(); + } else { + DisplayError(err_check); + } + } + + private void DisplayError(DataValidationReason err_check) { + switch (err_check) { + case AXIS_MISSING: + JOptionPane.showMessageDialog(module.getConfigurationWindow(), "You did not select the correct number of axes to make this axis control!", "Error", JOptionPane.WARNING_MESSAGE); + break; + case INVALID_RANGE_SIZE: + JOptionPane.showMessageDialog(module.getConfigurationWindow(), "You did not specify valid range numbers for your axis. (Usually it's between -1.0 and 1.0. Make sure the box is not red.)", "Error", JOptionPane.WARNING_MESSAGE); + break; } } - private boolean DataIsValid() { - return true; + private DataValidationReason DataIsValid() { + if ((!TextUtils.isNumeric(twowayAxis_range1.getTextField().getText()) || + !TextUtils.isNumeric(twowayAxis_range2.getTextField().getText())) && + two_axis_button.isSelected()) { + return DataValidationReason.INVALID_RANGE_SIZE; + } else + { + int numb_checked = 0; + int requirement = (two_axis_button.isSelected())?1:2; + for (JCheckBox cb : analog_controller_component_labels) { + if (cb.isSelected()) { + numb_checked++; + } + } + if (numb_checked!=requirement) { + return DataValidationReason.AXIS_MISSING; + } + } + return DataValidationReason.GOOD; } }; ActionListener invertListener = new ActionListener(){ @@ -176,6 +213,7 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener switch (ev.getActionCommand()) { case "add_button":{ module.setMode(EditMode.DRAGSELECTION); + //System.out.println("Called Drag Selection mode."); sigIRC.panel.grabFocus(); module.getConfigurationWindow().dispatchEvent(new WindowEvent(module.getConfigurationWindow(),WindowEvent.WINDOW_CLOSING)); }break; @@ -554,8 +592,8 @@ public class ControlConfigurationWindow extends JFrame implements WindowListener a = new Axis(new Rectangle2D.Double(), module.getControllers().get(0), ident, - Double.parseDouble(twowayAxis_range1.getTextField().getText()), - Double.parseDouble(twowayAxis_range2.getTextField().getText()), + Double.parseDouble((!TextUtils.isNumeric(twowayAxis_range1.getTextField().getText())?Double.toString(-1):twowayAxis_range1.getTextField().getText())), + Double.parseDouble((!TextUtils.isNumeric(twowayAxis_range2.getTextField().getText())?Double.toString(1):twowayAxis_range2.getTextField().getText())), orientation, axis_background_col, axis_indicator_col, diff --git a/src/sig/modules/Controller/DataValidationReason.java b/src/sig/modules/Controller/DataValidationReason.java new file mode 100644 index 0000000..567c8b5 --- /dev/null +++ b/src/sig/modules/Controller/DataValidationReason.java @@ -0,0 +1,7 @@ +package sig.modules.Controller; + +public enum DataValidationReason { + GOOD, + INVALID_RANGE_SIZE, + AXIS_MISSING; +} diff --git a/src/sig/modules/Controller/Element.java b/src/sig/modules/Controller/Element.java index a25e728..9e8a696 100644 --- a/src/sig/modules/Controller/Element.java +++ b/src/sig/modules/Controller/Element.java @@ -5,6 +5,7 @@ import java.awt.Image; import java.awt.geom.Rectangle2D; import sig.sigIRC; +import sig.modules.ControllerModule; public class Element { protected double pct_x = 0; @@ -37,4 +38,14 @@ public class Element { } return null; } + public void remove(ControllerModule module) { + if (this instanceof Button) { + module.getButtons().remove(this); + module.SaveButtonData(); + } else + if (this instanceof Axis) { + module.getAxes().remove(this); + module.SaveAxisData(); + } + } } diff --git a/src/sig/modules/Controller/RepeatedKey.java b/src/sig/modules/Controller/RepeatedKey.java new file mode 100644 index 0000000..63c7b23 --- /dev/null +++ b/src/sig/modules/Controller/RepeatedKey.java @@ -0,0 +1,79 @@ +package sig.modules.Controller; + +import sig.modules.ControllerModule; +import sig.utils.FileUtils; + +public class RepeatedKey { + int keycode; + boolean isKeyPressed; + Thread schedulerThread; + Runnable action; + Element element; + ControllerModule module; + boolean held_down=false,repeat=false; + final static int HOLD_DELAY=500; + final static int REPEAT_DELAY=100; + + public RepeatedKey(int keycode, ControllerModule module, + Runnable action) { + this.keycode=keycode; + this.module=module; + this.action=action; + } + + public int getKeyCode() { + return keycode; + } + + public boolean isKeyPressed() { + return this.isKeyPressed; + } + + public void setHeldStatus(boolean heldDown) { + this.held_down=heldDown; + } + + public void setRepeatStatus(boolean repeat) { + this.repeat = repeat; + } + + public void setKeyPressed(boolean isPressed) { + this.isKeyPressed=isPressed; + if (!held_down) { + held_down=true; + schedulerThread = new Thread() { + public void run() { + try { + Thread.sleep(HOLD_DELAY); + if (!isKeyPressed()) { + setHeldStatus(false); + } else { + setRepeatStatus(true); + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }; + } else { + if (repeat) { + schedulerThread = new Thread() { + public void run() { + try { + while (repeat) { + action.run(); + Thread.sleep(REPEAT_DELAY); + if (!isKeyPressed()) { + repeat=false; + held_down=false; + } + } + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }; + } + } + } +} \ No newline at end of file diff --git a/src/sig/modules/ControllerModule.java b/src/sig/modules/ControllerModule.java index cb60349..d5b61f4 100644 --- a/src/sig/modules/ControllerModule.java +++ b/src/sig/modules/ControllerModule.java @@ -6,6 +6,7 @@ import java.awt.Graphics; import java.awt.Image; import java.awt.Point; import java.awt.Rectangle; +import java.awt.event.KeyEvent; import java.awt.event.MouseEvent; import java.awt.event.WindowEvent; import java.awt.geom.Rectangle2D; @@ -15,6 +16,7 @@ import java.util.ArrayList; import java.util.List; import javax.imageio.ImageIO; +import javax.swing.JOptionPane; import org.lwjgl.glfw.GLFW; @@ -29,6 +31,7 @@ import sig.modules.Controller.Controller; import sig.modules.Controller.EditMode; import sig.modules.Controller.Element; import sig.modules.Controller.Identifier; +import sig.modules.Controller.RepeatedKey; import sig.modules.Controller.Type; import sig.modules.Controller.clickablebutton.AddClickableButton; import sig.modules.Controller.clickablebutton.CopyClickableButton; @@ -38,7 +41,7 @@ import sig.utils.FileUtils; public class ControllerModule extends Module{ public final static String CONTROLLERPATH = sigIRC.BASEDIR+"sigIRC/controller/"; List controllers = new ArrayList(); - Image controller_img; + Image controller_img,controller_overlay_img; double imgratio = 1; List