[tuxdroid-svn] r1433 - in software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive
Status: Beta
Brought to you by:
ks156
From: remi <c2m...@c2...> - 2008-07-31 10:51:24
|
Author: remi Date: 2008-07-31 12:51:29 +0200 (Thu, 31 Jul 2008) New Revision: 1433 Modified: software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/format/ATTBlockParams.java software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/visual/ATTBlockViewer.java Log: * added copy and past block functions Modified: software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/format/ATTBlockParams.java =================================================================== --- software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/format/ATTBlockParams.java 2008-07-30 14:35:16 UTC (rev 1432) +++ software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/format/ATTBlockParams.java 2008-07-31 10:51:29 UTC (rev 1433) @@ -2,6 +2,7 @@ import java.net.URLEncoder; import java.util.Hashtable; +import java.util.Iterator; /** * @@ -22,6 +23,7 @@ LEDS_BLINK_CANVAS.put("cmd", "leds_blink"); LEDS_BLINK_CANVAS.put("count", 1.0); LEDS_BLINK_CANVAS.put("speed", 1); + LEDS_BLINK_CANVAS.put("duration", 0.0); } private static String[] ledsBlinkTmc(Hashtable<String,Object> struct) { @@ -568,4 +570,65 @@ return null; } } + + /** + * + * @param struct + * @return + */ + public static Hashtable<String,Object> copyBlockStruct(Hashtable<String,Object> struct) + { + Hashtable<String,Object> result = new Hashtable<String,Object>(); + String key; + Iterator<String> it = (Iterator<String>)struct.keys(); + + while (it.hasNext()) + { + key = (String)it.next(); + result.put(key, struct.get(key)); + } + + return result; + } + + /** + * + * @param rowIdx + * @return + */ + public static Hashtable<String,Object> getDefaultBlock(int rowIdx) + { + Hashtable<String,Object> result; + + if (rowIdx == 0) + { + result = copyBlockStruct(LEDS_BLINK_CANVAS); + } + else if (rowIdx == 1) + { + result = copyBlockStruct(EYES_ON_CANVAS); + } + else if (rowIdx == 2) + { + result = copyBlockStruct(FLIPPERS_ON_CANVAS); + } + else if (rowIdx == 3) + { + result = copyBlockStruct(SPINNING_LEFT_CANVAS); + } + else if (rowIdx == 4) + { + result = copyBlockStruct(PLAY_FLASH_CANVAS); + } + else if (rowIdx == 5) + { + result = copyBlockStruct(PLAY_TTS_CANVAS); + } + else + { + result = copyBlockStruct(LEDS_BLINK_CANVAS); + } + + return result; + } } Modified: software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/visual/ATTBlockViewer.java =================================================================== --- software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/visual/ATTBlockViewer.java 2008-07-30 14:35:16 UTC (rev 1432) +++ software_suite_v2/software/tools/attitunesStudio/trunk/src/com/tuxisalive/attitunes/visual/ATTBlockViewer.java 2008-07-31 10:51:29 UTC (rev 1433) @@ -75,6 +75,8 @@ private ATTBlock focusedBlock; private int focusedRowIndex; private boolean draggingBlock; + private ATTBlock blockCopied; + private int rowCopied; private int zoomFactor; @@ -155,6 +157,9 @@ focusedRowIndex = -1; draggingBlock = false; blockContainer0.setFocused(true); + /* Block to copy */ + blockCopied = null; + rowCopied = -1; /* Zoom init */ zoomFactor = -1; /* Event handlers */ @@ -1076,6 +1081,7 @@ resBlock.setLength(timeLength); recalcFullTime(); setFocusedBlock(resBlock); + this.repaint(); return resBlock; } @@ -1102,6 +1108,7 @@ { blockContainers[i].deleteBlock(j); recalcFullTime(); + this.repaint(); } return; @@ -1319,4 +1326,38 @@ sendSimpleCmd(String.format("macro/play?macro=%s", macro)); } + + /** + * + */ + public void copyBlock() + { + blockCopied = focusedBlock; + rowCopied = focusedRowIndex; + } + + /** + * + * @param timeBegin + * @return + */ + public ATTBlock pastBlock(double timeBegin) + { + if (rowCopied == -1) + { + return null; + } + else if (rowCopied != focusedRowIndex) + { + return null; + } + + if (blockCopied == null) + { + return null; + } + + return createBlock(rowCopied, blockCopied.getFunctionParams(), + timeBegin, blockCopied.getLength()); + } } |