[Patchanim-commit] SF.net SVN: patchanim: [215] trunk/patchanim/src/com/mebigfatguy/patchanim
Brought to you by:
dbrosius
From: <dbr...@us...> - 2008-02-18 18:36:38
|
Revision: 215 http://patchanim.svn.sourceforge.net/patchanim/?rev=215&view=rev Author: dbrosius Date: 2008-02-18 10:36:45 -0800 (Mon, 18 Feb 2008) Log Message: ----------- add shift menu to patch context menu Modified Paths: -------------- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-02-18 18:16:41 UTC (rev 214) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/gui/JPatchSamplePanel.java 2008-02-18 18:36:45 UTC (rev 215) @@ -44,6 +44,7 @@ import com.mebigfatguy.patchanim.OutOfBoundsColor; import com.mebigfatguy.patchanim.PatchAnimDocument; import com.mebigfatguy.patchanim.PatchColor; +import com.mebigfatguy.patchanim.ShiftDirection; import com.mebigfatguy.patchanim.gui.events.ActivePatchChangedEvent; import com.mebigfatguy.patchanim.gui.events.ActivePatchChangedListener; import com.mebigfatguy.patchanim.gui.events.DocumentChangedEvent; @@ -305,7 +306,42 @@ radialGradient.add(outward); radialGradient.add(inward); menu.add(radialGradient); + + JMenu shift = new JMenu(rb.getString(PatchAnimBundle.SHIFT)); + JMenuItem left = new JMenuItem(rb.getString(PatchAnimBundle.LEFT)); + left.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + shiftPatch(ShiftDirection.Left); + } + }); + JMenuItem down = new JMenuItem(rb.getString(PatchAnimBundle.DOWN)); + down.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + shiftPatch(ShiftDirection.Down); + } + }); + + JMenuItem right = new JMenuItem(rb.getString(PatchAnimBundle.RIGHT)); + right.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + shiftPatch(ShiftDirection.Right); + } + }); + + JMenuItem up = new JMenuItem(rb.getString(PatchAnimBundle.UP)); + up.addActionListener(new ActionListener() { + public void actionPerformed(ActionEvent ae) { + shiftPatch(ShiftDirection.Up); + } + }); + + shift.add(left); + shift.add(down); + shift.add(right); + shift.add(up); + menu.add(shift); + JMenuItem invert = new JMenuItem(rb.getString(PatchAnimBundle.INVERT)); invert.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent ae) { @@ -474,6 +510,43 @@ mediator.setNewActivePatch(patch); } + private void shiftPatch(ShiftDirection dir) { + PatchPanelMediator mediator = PatchPanelMediator.getMediator(); + CombinedPatch patch = mediator.getActivePatch(); + PatchCoords coords = patch.getPatch(color); + int order = coords.getOrder(); + + PatchCoords srcCoords = (PatchCoords)coords.clone(); + + for (int i = 0; i < order; i++) { + for (int j = 0; j < order; j++) { + Coordinate c = coords.getCoordinate(i, j); + Coordinate srcC = null; + switch (dir) { + case Left: + srcC = srcCoords.getCoordinate((i + 1) % order, j); + break; + + case Down: + srcC = srcCoords.getCoordinate(i, (j - 1 + order) % order); + break; + + case Right: + srcC = srcCoords.getCoordinate((i - 1 + order) % order, j); + break; + + case Up: + srcC = srcCoords.getCoordinate(i, (j + 1) % order); + break; + } + + c.setColor(srcC.getColor()); + coords.setCoordinate(i, j, c); + } + } + mediator.setNewActivePatch(patch); + } + @Override public void paintComponent(Graphics g) { Shape clip = g.getClip(); Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java 2008-02-18 18:16:41 UTC (rev 214) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/main/PatchAnimBundle.java 2008-02-18 18:36:45 UTC (rev 215) @@ -89,6 +89,11 @@ public static final String RADIALGRADIENT = "patchanim.radialgradient"; public static final String OUTWARD = "patchanim.outward"; public static final String INWARD = "patchanim.inward"; + public static final String SHIFT = "patchanim.shift"; + public static final String LEFT = "patchanim.left"; + public static final String DOWN = "patchanim.down"; + public static final String RIGHT = "patchanim.right"; + public static final String UP = "patchanim.up"; public static final String INVERT = "patchanim.invert"; public static final String COPYPATCHFROM = "patchanim.copypatchfrom"; public static final String REDPATCH = "patchanim.redpatch"; Modified: trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties =================================================================== --- trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties 2008-02-18 18:16:41 UTC (rev 214) +++ trunk/patchanim/src/com/mebigfatguy/patchanim/resources.properties 2008-02-18 18:36:45 UTC (rev 215) @@ -82,6 +82,11 @@ patchanim.radialgradient = Radial Gradient patchanim.outward = Outward patchanim.inward = Inward +patchanim.shift = Shift +patchanim.left = Left +patchanim.down = Down +patchanim.right = Right +patchanim.up = Up patchanim.invert = Invert patchanim.copypatchfrom = Copy patch from... patchanim.redpatch = Red Patch This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |