diff --git a/.classpath b/.classpath
new file mode 100644
index 0000000..3e0fb27
--- /dev/null
+++ b/.classpath
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/src/debug/ContainerArray.java b/src/debug/ContainerArray.java
index 124ece6..7766467 100755
--- a/src/debug/ContainerArray.java
+++ b/src/debug/ContainerArray.java
@@ -1,8 +1,11 @@
package debug;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
public class ContainerArray {
- private int initialCapacity = 10;
+ private int limit = 10;
private int currentSize = 0;
private Object[] internalArray;
@@ -23,7 +26,10 @@ public int size () {
}
public void remove (E objectToRemove) {
- currentSize--;
+ List list = new ArrayList(Arrays.asList(internalArray));
+ list.remove(objectToRemove);
+ internalArray = list.toArray();
+ currentSize--;
}
@SuppressWarnings("unchecked")
diff --git a/src/debug/ContainerArrayTest.java b/src/debug/ContainerArrayTest.java
index c566d50..bf348ce 100755
--- a/src/debug/ContainerArrayTest.java
+++ b/src/debug/ContainerArrayTest.java
@@ -44,4 +44,14 @@ public void testObjectIsRemoved () {
myContainer.remove("Bear");
assertEquals("Remove should be same reference", alligator, myContainer.get(0));
}
+
+ @Test
+ public void testRemoveMiddleObject () {
+ String dog = "dog";
+ String cat = "cat";
+ myContainer.add("dog");
+ myContainer.add("cat");
+ myContainer.remove(dog);
+ assertEquals("Remove should work for any object", cat, myContainer.get(0));
+ }
}
diff --git a/src/tdd/Sheet.java b/src/tdd/Sheet.java
new file mode 100644
index 0000000..47a5257
--- /dev/null
+++ b/src/tdd/Sheet.java
@@ -0,0 +1,35 @@
+package tdd;
+
+import java.util.HashMap;
+
+public class Sheet {
+
+ HashMap cellStorage = new HashMap();
+ HashMap literals = new HashMap();
+
+ public String get(String string) {
+ if(!cellStorage.keySet().contains(string)){
+ return "";
+ }
+ return cellStorage.get(string);
+ }
+
+ public void put(String cell, String string){
+ literals.put(cell, string);
+ try{
+ Integer.parseInt(string.trim());
+ } catch (Exception e){
+ cellStorage.put(cell, string);
+ return;
+ }
+ cellStorage.put(cell, string.trim());
+ }
+
+ public String getLiteral(String string){
+ if(!literals.keySet().contains(string)){
+ return "";
+ }
+ return literals.get(string);
+ }
+
+}
diff --git a/src/tdd/TestSheet.java b/src/tdd/TestSheet.java
new file mode 100644
index 0000000..bbcb6cd
--- /dev/null
+++ b/src/tdd/TestSheet.java
@@ -0,0 +1,83 @@
+package tdd;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class TestSheet {
+
+ @Test
+ public void testThatCellsAreEmptyByDefault() {
+ Sheet sheet = new Sheet();
+ assertEquals("", sheet.get("A1"));
+ assertEquals("", sheet.get("ZX347"));
+ }
+
+ @Test
+ public void testThatTextCellsAreStored() {
+ Sheet sheet = new Sheet();
+ String theCell = "A21";
+
+ sheet.put(theCell, "A string");
+ assertEquals("A string", sheet.get(theCell));
+
+ sheet.put(theCell, "A different string");
+ assertEquals("A different string", sheet.get(theCell));
+
+ sheet.put(theCell, "");
+ assertEquals("", sheet.get(theCell));
+ }
+
+ @Test
+ public void testThatManyCellsExist() {
+ Sheet sheet = new Sheet();
+ sheet.put("A1", "First");
+ sheet.put("X27", "Second");
+ sheet.put("ZX901", "Third");
+
+ assertEquals("A1", "First", sheet.get("A1"));
+ assertEquals("X27", "Second", sheet.get("X27"));
+ assertEquals("ZX901", "Third", sheet.get("ZX901"));
+
+ sheet.put("A1", "Fourth");
+ assertEquals("A1 after", "Fourth", sheet.get("A1"));
+ assertEquals("X27 same", "Second", sheet.get("X27"));
+ assertEquals("ZX901 same", "Third", sheet.get("ZX901"));
+ }
+
+ @Test
+ public void testThatNumericCellsAreIdentifiedAndStored() {
+ Sheet sheet = new Sheet();
+ String theCell = "A21";
+
+ sheet.put(theCell, "X99"); // "Obvious" string
+ assertEquals("X99", sheet.get(theCell));
+
+ sheet.put(theCell, "14"); // "Obvious" number
+ assertEquals("14", sheet.get(theCell));
+
+ sheet.put(theCell, " 99 X"); // Whole string must be numeric
+ assertEquals(" 99 X", sheet.get(theCell));
+
+ sheet.put(theCell, " 1234 "); // Blanks ignored
+ assertEquals("1234", sheet.get(theCell));
+
+ sheet.put(theCell, " "); // Just a blank
+ assertEquals(" ", sheet.get(theCell));
+ }
+
+ @Test
+ public void testThatWeHaveAccessToCellLiteralValuesForEditing() {
+ Sheet sheet = new Sheet();
+ String theCell = "A21";
+
+ sheet.put(theCell, "Some string");
+ assertEquals("Some string", sheet.getLiteral(theCell));
+
+ sheet.put(theCell, " 1234 ");
+ assertEquals(" 1234 ", sheet.getLiteral(theCell));
+
+ sheet.put(theCell, "=7"); // Foreshadowing formulas:)
+ assertEquals("=7", sheet.getLiteral(theCell));
+ }
+}
diff --git a/src/voogasalad/ItemWindowTester.java b/src/voogasalad/ItemWindowTester.java
new file mode 100644
index 0000000..a7c8b77
--- /dev/null
+++ b/src/voogasalad/ItemWindowTester.java
@@ -0,0 +1,21 @@
+package voogasalad;
+
+import static org.junit.Assert.*;
+
+import org.junit.Test;
+
+public class ItemWindowTester {
+
+ PlayerSpritesTab myTab = new PlayerSpritesTab();
+
+ @Test
+ public void testSetTitle(){
+ myTab.setTabTitle("");
+ assertEquals("", myTab.getTab().getText());
+ myTab.setTabTitle(" ");
+ assertEquals(" ", myTab.getTab().getText());
+ myTab.setTabTitle(" Title ");
+ assertEquals("Title", myTab.getTab().getText());
+ }
+
+}
\ No newline at end of file
diff --git a/src/voogasalad/PlayerSpritesTab.java b/src/voogasalad/PlayerSpritesTab.java
new file mode 100644
index 0000000..288cd87
--- /dev/null
+++ b/src/voogasalad/PlayerSpritesTab.java
@@ -0,0 +1,50 @@
+package voogasalad;
+
+/**
+ * Created by davidyan on 4/4/16.
+ */
+
+import authoringEnvironment.ViewSprite;
+import javafx.geometry.Insets;
+import javafx.scene.control.Tab;
+import javafx.scene.layout.TilePane;
+
+
+import java.util.ArrayList;
+
+public class PlayerSpritesTab implements ITab{
+
+ Tab tab;
+ TilePane tilepane;
+
+ public PlayerSpritesTab(){
+ tab = new Tab();
+ tilepane = new TilePane();
+ }
+
+ public void populateTab(ArrayList viewSprites){
+ setTilePaneSettings();
+ for(ViewSprite x : viewSprites){
+// img.setFitHeight(myTabPane.getPrefWidth()*0.25);
+// img.setFitWidth(myTabPane.getPrefWidth()*0.25);
+ tilepane.getChildren().add(x);
+ }
+ tab.setContent(tilepane);
+ }
+
+ public void setTabTitle(String tabTitle){
+ tab.setText(tabTitle.trim());
+ }
+
+ private void setTilePaneSettings(){
+ tilepane.setPrefTileHeight(200);
+ tilepane.setPrefTileWidth(200);
+ double inset = 5;
+ tilepane.setPadding(new Insets(inset, inset, inset, inset));
+ tilepane.setHgap(inset);
+ }
+
+ public Tab getTab(){
+ return tab;
+ }
+}
\ No newline at end of file