@Override public void keyPressed(KeyEvent keyEvent) { Board b = bgui.getGridView(); if (b.getAction() == Board.Action.KEY_DISCONNECT) { if (f != null) { boolean removed = false; for (KeyConnectionFlipper kcf : m.getKeyConnectionsFlipper()) { if (kcf.getFlipper().equals(f) && (kcf.getKeyID() == keyEvent.getKeyCode())) { m.getKeyConnectionsFlipper().remove(kcf); bgui.setMessageColor(Color.GREEN); bgui.setMessage("Key '" + KeyEvent.getKeyText(kcf.getKeyID()) + "' is removed!"); removed = true; break; } } if (!removed) { bgui.setMessageColor(Color.RED); bgui.setMessage( "Key '" + KeyEvent.getKeyText(keyEvent.getKeyCode()) + "' is not connected " + " to that flipper! "); } } else if (abs != null) { boolean removed = false; for (KeyConnectionAbs kca : m.getKeyConnectionsAbs()) { if ((kca.getKeyID() == keyEvent.getKeyCode())) { m.getKeyConnectionsAbs().remove(kca); bgui.setMessageColor(Color.GREEN); bgui.setMessage("Key '" + KeyEvent.getKeyText(kca.getKeyID()) + "' is removed!"); removed = true; break; } } if (!removed) { bgui.setMessageColor(Color.RED); bgui.setMessage( "Key '" + KeyEvent.getKeyText(keyEvent.getKeyCode()) + "' is not connected " + " to that absorber! "); } } else { bgui.setMessageColor(Color.YELLOW); bgui.setMessage("No Component chosen yet"); } } }
@Test public void keyConnectionTest() { assertTrue(model.addKeyConnectionAbs(10, new Absorber("ABS1", 0, 380, 400, 400), "down")); assertTrue(model.getKeyConnectionsAbs().size() == 1); assertTrue(model.getKeyConnectionsAbs().get(0).getKeyID() == 10); assertTrue(model.addKeyConnectionFlipper(20, new Flipper(0, 0, true, "F1"), "down")); assertTrue(model.getKeyConnectionsFlipper().size() == 1); assertTrue(model.getKeyConnectionsFlipper().get(0).getKeyID() == 20); }
@Override public void mouseClicked(MouseEvent mouseEvent) { Board b = bgui.getGridView(); if (b.getAction() == Board.Action.KEY_DISCONNECT) { Point mouseP = MouseInfo.getPointerInfo().getLocation(); Point gridP = b.getLocationOnScreen(); int x = mouseP.x - gridP.x; int y = mouseP.y - gridP.y; x -= x % 20; y -= y % 20; f = m.findFlipper(x, y); String keys = ""; if (f != null) { for (KeyConnectionFlipper kcf : m.getKeyConnectionsFlipper()) { if (kcf.getFlipper().equals(f)) { keys += ("'" + KeyEvent.getKeyText(kcf.getKeyID()) + "', "); } } if (keys.length() > 2) { keys = keys.substring(0, keys.length() - 2); } abs = null; b.requestFocus(); bgui.setMessageColor(Color.BLACK); bgui.setMessage( "This flipper is connected to keys " + keys + ". Press key to remove connection to it."); } else if (m.getAbsorber() != null && x <= m.getAbsorber().getXBottomRight() && x >= m.getAbsorber().getXTopLeft() && y <= m.getAbsorber().getYBottomRight() && y >= m.getAbsorber().getYTopLeft()) { for (KeyConnectionAbs kca : m.getKeyConnectionsAbs()) { keys += ("'" + KeyEvent.getKeyText(kca.getKeyID()) + "', "); } if (keys.length() > 2) { keys = keys.substring(0, keys.length() - 2); } abs = m.getAbsorber(); b.requestFocus(); bgui.setMessageColor(Color.BLACK); bgui.setMessage( "This absorber is connected to keys " + keys + ". Press key to remove connection to it."); } } }