Merge remote-tracking branch 'origin/develop' into tizen 71/18671/1
authoryonghwan82.jeon <yonghwan82.jeon@samsung.com>
Fri, 28 Mar 2014 01:09:28 +0000 (10:09 +0900)
committeryonghwan82.jeon <yonghwan82.jeon@samsung.com>
Fri, 28 Mar 2014 01:09:28 +0000 (10:09 +0900)
* origin/develop:
  ANIMATOR : Fixed Forward null This code do not check forward null.
  PROP : Fix null pointer exception. Fix null pointer exception.
  UIB : Remove possibe Error. Add defense  code for possible error by static analyzer.
  UIB : Fix null point exception on ThumbnailManager, HtmlMetaFileData, SnippetManager
  TEMPLATE : Modify CreateAction
  UIB : Add error handling check null dereference
  UIB : Add JUnit project for Unittest
  SNIPPET : Refactoring snippet
  SNIPPET : Remove old format snippets / templates
  UIB : Add error handling
  DATABIND : Remove resource leak
  UIB : Fix null point exception on CodeGenerator, PageDataSet

Change-Id: I093ad7a0d961d54358a6e9192c010e58a8f8e6bd
Signed-off-by: yonghwan82.jeon <yonghwan82.jeon@samsung.com>
45 files changed:
org.tizen.webuibuilder.test/.project [new file with mode: 0644]
org.tizen.webuibuilder.test/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
org.tizen.webuibuilder.test/META-INF/MANIFEST.MF [new file with mode: 0644]
org.tizen.webuibuilder.test/build.properties [new file with mode: 0644]
org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/ResourceManagerUnitTest.java [new file with mode: 0644]
org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/SnippetManagerUnitTest.java [new file with mode: 0644]
org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/SnippetTest.java [new file with mode: 0644]
org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/TemplateTest.java [new file with mode: 0644]
org.tizen.webuibuilder/res/page-templates/basic/empty/desciptor.xml [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/empty/image.png [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/empty/meta.xml [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/empty/template.xsl [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/multi/desciptor.xml [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/multi/image.png [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/multi/index.html [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/multi/meta.xml [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/multi/template.xsl [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/single/desciptor.xml [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/single/image.png [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/single/index.html [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/single/meta.xml [deleted file]
org.tizen.webuibuilder/res/page-templates/basic/single/template.xsl [deleted file]
org.tizen.webuibuilder/res/snippets/1.test/descriptor.xml [deleted file]
org.tizen.webuibuilder/res/snippets/1.test/image.png [deleted file]
org.tizen.webuibuilder/res/snippets/1.test/meta.xml [deleted file]
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/AnimatorModelManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/animator/model/deserializer/AnimatorAnimationDeserializer.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/builder/WebUIBuilderBuilder.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/app/ThumbnailManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/model/filedata/HtmlMetaFileData.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/action/CreateAction.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/manager/TemplateManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/model/ITemplateGroup.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/model/TemplateGroup.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/ui/wizard/policy/CreatePolicy.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/ui/wizards/CreateWizard.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/pagetemplate/ui/wizards/TemplateComposite.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/snippet/loader/DescriptorLoader.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/snippet/manager/ISnippetManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/snippet/manager/SnippetManager.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/snippet/ui/wizards/policy/CreatePolicy.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/navigator/navigatorcontents/NavigatorIPageListener.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/CategoryComposite.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/ui/views/properties/style/CssStyleTab.java
org.tizen.webuibuilder/src/org/tizen/webuibuilder/utility/PageManager.java

diff --git a/org.tizen.webuibuilder.test/.project b/org.tizen.webuibuilder.test/.project
new file mode 100644 (file)
index 0000000..e2de15c
--- /dev/null
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+       <name>org.tizen.webuibuilder.test</name>
+       <comment></comment>
+       <projects>
+       </projects>
+       <buildSpec>
+               <buildCommand>
+                       <name>org.eclipse.jdt.core.javabuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.ManifestBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+               <buildCommand>
+                       <name>org.eclipse.pde.SchemaBuilder</name>
+                       <arguments>
+                       </arguments>
+               </buildCommand>
+       </buildSpec>
+       <natures>
+               <nature>org.eclipse.pde.PluginNature</nature>
+               <nature>org.eclipse.jdt.core.javanature</nature>
+       </natures>
+</projectDescription>
diff --git a/org.tizen.webuibuilder.test/.settings/org.eclipse.jdt.core.prefs b/org.tizen.webuibuilder.test/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..c537b63
--- /dev/null
@@ -0,0 +1,7 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/org.tizen.webuibuilder.test/META-INF/MANIFEST.MF b/org.tizen.webuibuilder.test/META-INF/MANIFEST.MF
new file mode 100644 (file)
index 0000000..d91b03a
--- /dev/null
@@ -0,0 +1,7 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: Test
+Bundle-SymbolicName: org.tizen.webuibuilder.test
+Bundle-Version: 1.0.0.qualifier
+Fragment-Host: org.tizen.webuibuilder;bundle-version="1.0.0"
+Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/org.tizen.webuibuilder.test/build.properties b/org.tizen.webuibuilder.test/build.properties
new file mode 100644 (file)
index 0000000..34d2e4d
--- /dev/null
@@ -0,0 +1,4 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .
diff --git a/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/ResourceManagerUnitTest.java b/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/ResourceManagerUnitTest.java
new file mode 100644 (file)
index 0000000..e71faa9
--- /dev/null
@@ -0,0 +1,61 @@
+package org.tizen.webuibuilder.snippet;
+
+import static org.junit.Assert.*;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.tizen.common.util.FileUtil;
+import org.tizen.webuibuilder.utility.ResourceManager;
+import org.tizen.webuibuilder.utility.ResourceUtil;
+
+public class ResourceManagerUnitTest {
+    private static String TEST_DIRECTORY_PATH = "./test/ResourceManager";
+    private static String TEST_FILE_PATH = "./test/ResourceManager/test.txt";
+    private static String TEST_TEXT = "ResourceManagerUnitTest";
+
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    @Test
+    public void GetStringTest() {
+        // create test directory 
+        String testDirectoryPath = ResourceUtil.getAbsolutePath(TEST_DIRECTORY_PATH);
+        logger.info(testDirectoryPath);
+        File testDirectory = new File(testDirectoryPath);
+        Assert.assertFalse("Test directory already exist", testDirectory.exists());
+        Assert.assertTrue("Test directory create fail", testDirectory.mkdirs());
+        Assert.assertTrue("Test directory create fail", testDirectory.exists());
+
+        // create test file
+        String testFilePath = ResourceUtil.getAbsolutePath(TEST_FILE_PATH);
+        logger.info(testFilePath);
+
+        File testFile = new File(testFilePath);
+        if (!testFile.exists()) {
+            try {
+                FileUtil.createTextFile(testFile, TEST_TEXT, null);
+            } catch (IOException e) {
+                fail("Create test file fail");
+            }
+        }
+        Assert.assertTrue(testFile.exists());
+
+        String text = null;
+        try {
+            text = ResourceManager.getString(null);
+        } catch (NullPointerException e) {
+        }
+        text = ResourceManager.getString(TEST_FILE_PATH);
+        Assert.assertEquals(TEST_TEXT, text);
+
+        // remove test directory
+        Assert.assertTrue("Test directory exist fail", testDirectory.exists());
+        Assert.assertTrue("Test directory remove fail", FileUtil.recursiveDelete(testDirectory));
+    }
+
+}
diff --git a/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/SnippetManagerUnitTest.java b/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/SnippetManagerUnitTest.java
new file mode 100644 (file)
index 0000000..834c83e
--- /dev/null
@@ -0,0 +1,113 @@
+
+
+package org.tizen.webuibuilder.snippet;
+
+import java.util.Collection;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.junit.Assert;
+import org.junit.Test;
+import org.tizen.webuibuilder.BuilderConstants;
+import org.tizen.webuibuilder.snippet.manager.ISnippetManager;
+import org.tizen.webuibuilder.snippet.manager.SnippetManager;
+import org.tizen.webuibuilder.snippet.model.Descriptor;
+import org.tizen.webuibuilder.snippet.model.IDescriptor;
+import org.tizen.webuibuilder.snippet.model.ISnippet;
+import org.tizen.webuibuilder.snippet.model.Snippet;
+import org.tizen.webuibuilder.utility.ResourceManager;
+
+
+public class SnippetManagerUnitTest {
+    private String TEST_SNIPPET_NAME1 = "test1";
+    private String TEST_SNIPPET_NAME2 = "test2";
+
+    private ISnippet createSnippet(String name) {
+        ISnippet snippet = new Snippet();
+        snippet.setId("");
+        snippet.setName(name);
+        // Create Image Descriptor
+        Image image = ResourceManager.getImage(BuilderConstants.IMAGE_DIR, "image.png");
+        ImageDescriptor imageDescriptor = ImageDescriptor.createFromImage(image);
+        snippet.setImageDescriptor(imageDescriptor);
+        // Create Descriptor
+        IDescriptor descriptor = new Descriptor();
+        String text = "";
+        descriptor.setText(text);
+        snippet.setDescriptor(descriptor);
+        return snippet;
+    }
+
+    @Test
+    public void GetSnippetsTest() {
+        ISnippetManager manager = new SnippetManager();
+        // initial snippets are empty
+        Collection<ISnippet> snippets = manager.getSnippets();
+        Assert.assertEquals(0, snippets.size());
+    }
+
+    @Test
+    public void CreateTest() {
+        ISnippetManager manager = new SnippetManager();
+        try {
+            manager.create(null);
+        } catch (NullPointerException e) {
+        }
+
+        ISnippet snippet = createSnippet(TEST_SNIPPET_NAME1);
+        Assert.assertTrue("SnippetManager.create fail", manager.create(snippet));
+    }
+
+    @Test
+    public void RemoveTest() {
+        ISnippetManager manager = new SnippetManager();
+        try {
+            manager.remove(null);
+        } catch (NullPointerException e) {
+        }
+
+        // Create snippets
+        Collection<ISnippet> snippets = (Collection<ISnippet>) manager.getSnippets();
+        Assert.assertEquals(1, snippets.size());
+        // remove snippets
+        for (ISnippet snippet : snippets) {
+            Assert.assertTrue("Snippet remove fail", manager.remove(snippet));
+        }
+    }
+
+    @Test
+    public void RenameTest() {
+        ISnippetManager manager = new SnippetManager();
+        try {
+            manager.rename(null, null);
+        } catch (NullPointerException e) {
+        }
+        try {
+            manager.rename(null, TEST_SNIPPET_NAME2);
+        } catch (NullPointerException e) {
+        }
+        ISnippet testSnippet = createSnippet(TEST_SNIPPET_NAME1);
+        Assert.assertTrue("SnippetManager.create fail", manager.create(testSnippet));
+        Assert.assertTrue("SnippetManager.rename fail",
+                          manager.rename(testSnippet, TEST_SNIPPET_NAME2));
+        Collection<ISnippet> snippets = (Collection<ISnippet>) manager.getSnippets();
+        Assert.assertEquals(1, snippets.size());
+        for (ISnippet snippet : snippets) {
+            Assert.assertEquals(TEST_SNIPPET_NAME2, snippet.getName());
+        }
+        for (ISnippet snippet : snippets) {
+            Assert.assertTrue("Snippet remove fail", manager.remove(snippet));
+        }
+    }
+
+    @Test
+    public void ExportSnippetTest() {
+        ISnippetManager manager = new SnippetManager();
+    }
+
+    @Test
+    public void ImportSnippetTest() {
+        ISnippetManager manager = new SnippetManager();
+    }
+
+}
diff --git a/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/SnippetTest.java b/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/SnippetTest.java
new file mode 100644 (file)
index 0000000..02e99fa
--- /dev/null
@@ -0,0 +1,60 @@
+package org.tizen.webuibuilder.snippet;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.tizen.webuibuilder.BuilderConstants;
+import org.tizen.webuibuilder.snippet.model.Descriptor;
+import org.tizen.webuibuilder.snippet.model.IDescriptor;
+import org.tizen.webuibuilder.snippet.model.ISnippet;
+import org.tizen.webuibuilder.snippet.model.Snippet;
+import org.tizen.webuibuilder.utility.ResourceManager;
+
+public class SnippetTest {
+    private String TEST_SNIPPET1 = "test1";
+    private String TEST_SNIPPET2 = "test2";
+    private String TEST_SNIPPET3 = "test3";
+
+    private Logger logger = LoggerFactory.getLogger(getClass());
+
+    private ISnippet createSnippet(String name) {
+        ISnippet snippet = new Snippet();
+        snippet.setId("");
+        snippet.setName(name);
+        // Create Image Descriptor
+        Image image = ResourceManager.getImage(BuilderConstants.IMAGE_DIR, "image.png");
+        ImageDescriptor imageDescriptor = ImageDescriptor.createFromImage(image);
+        snippet.setImageDescriptor(imageDescriptor);
+        // Create Descriptor
+        IDescriptor descriptor = new Descriptor();
+        String text = "";
+        descriptor.setText(text);
+        snippet.setDescriptor(descriptor);
+        return snippet;
+    }
+
+    @Test
+    public void CreateAndRemoveSnippetTest() {
+//        ISnippetManager manager = new SnippetManager();
+//        // Create snippets
+//        ISnippet snippet1 = createSnippet(TEST_SNIPPET1);
+//        Assert.assertTrue("Snippet create fail", manager.create(snippet1));
+//        ISnippet snippet2 = createSnippet(TEST_SNIPPET2);
+//        Assert.assertTrue("Snippet create fail", manager.create(snippet2));
+//        ISnippet snippet3 = createSnippet(TEST_SNIPPET3);
+//        Assert.assertTrue("Snippet create fail", manager.create(snippet3));
+//
+//        // remove snippets
+//        Assert.assertTrue("Snippet remove fail", manager.remove(snippet1));
+//        Assert.assertTrue("Snippet remove fail", manager.remove(snippet2));
+//        Assert.assertTrue("Snippet remove fail", manager.remove(snippet3));
+    }
+
+//    @Test
+//    public void CreateSnippetTest() {
+//        CreatePolicy createPolicy = new CreatePolicy(null, "test1", "TestSnippet", "/home/hwani/Image/image.png");
+//        Assert.assertTrue("Snippet create fail", createPolicy.run());
+//    }
+}
diff --git a/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/TemplateTest.java b/org.tizen.webuibuilder.test/src/org/tizen/webuibuilder/snippet/TemplateTest.java
new file mode 100644 (file)
index 0000000..e83cf96
--- /dev/null
@@ -0,0 +1,129 @@
+package org.tizen.webuibuilder.snippet;
+
+import java.io.File;
+
+import org.eclipse.jface.resource.ImageDescriptor;
+import org.eclipse.swt.graphics.Image;
+import org.junit.Assert;
+import org.junit.Test;
+import org.tizen.common.util.FileUtil;
+import org.tizen.webuibuilder.BuilderConstants;
+import org.tizen.webuibuilder.pagetemplate.loader.TemplateLoader;
+import org.tizen.webuibuilder.pagetemplate.manager.ITemplateManager;
+import org.tizen.webuibuilder.pagetemplate.manager.TemplateManager;
+import org.tizen.webuibuilder.pagetemplate.model.ITemplate;
+import org.tizen.webuibuilder.pagetemplate.model.ITemplateGroup;
+import org.tizen.webuibuilder.pagetemplate.model.Template;
+import org.tizen.webuibuilder.pagetemplate.model.TemplateGroup;
+import org.tizen.webuibuilder.snippet.model.Descriptor;
+import org.tizen.webuibuilder.snippet.model.IDescriptor;
+import org.tizen.webuibuilder.utility.ResourceManager;
+import org.tizen.webuibuilder.utility.ResourceUtil;
+
+
+public class TemplateTest {
+    private String TEST_GROUP = "Test";
+    private String TEST_TEMPLATE1 = "Test1";
+    private String TEST_TEMPLATE2 = "Test2";
+    private String TEST_TEMPLATE3 = "Test3";
+    private String PATH_EXPORT = "./test/TemplateManager";
+    private String PATH_IMPORT = "./test/TemplateManager";
+
+    @Test
+    public void CreateTemplateGroupTest() {
+        ITemplateGroup group = new TemplateGroup();
+        group.setName(TEST_GROUP);
+        ITemplateManager manager = new TemplateManager();
+        Assert.assertTrue("Template group create fail", manager.create(group));
+    }
+
+    private ITemplate createTemplate(String name) {
+        ITemplate template = new Template();
+        template.setId("");
+        template.setName(name);
+        template.setDescription("");
+        // Create Image Descriptor
+        Image image = ResourceManager.getImage(BuilderConstants.IMAGE_DIR, "image.png");
+        // File imageFile = new File(imagePath);
+        // ImageLoader imageLoader = new ImageLoader();
+        // ImageData[] imageData = imageLoader.load(imageFile.getPath());
+        ImageDescriptor imageDescriptor = ImageDescriptor.createFromImage(image);
+        // Create Descriptor
+        template.setImageDescriptor(imageDescriptor);
+        IDescriptor descriptor = new Descriptor();
+//        Converter converter = new Converter();
+//        String text = converter.convert(model);
+        String text = "";
+        descriptor.setText(text);
+        template.setDescriptor(descriptor);
+        return template;
+    }
+
+    @Test
+    public void CreateTemplateTest() {
+        ITemplateGroup group = new TemplateGroup();
+        group.setName(TEST_GROUP);
+        ITemplateManager manager = new TemplateManager();
+        // create Tempaltes
+        ITemplate template1 = createTemplate(TEST_TEMPLATE1);
+        Assert.assertTrue("Template create fail", manager.create(group, template1));
+        ITemplate template2 = createTemplate(TEST_TEMPLATE2);
+        Assert.assertTrue("Template create fail", manager.create(group, template2));
+        ITemplate template3 = createTemplate(TEST_TEMPLATE3);
+        Assert.assertTrue("Template create fail", manager.create(group, template3));
+
+        // remove templates
+        Assert.assertTrue("Template remove fail", manager.remove(group, template1));
+        Assert.assertTrue("Template remove fail", manager.remove(group, template2));
+        Assert.assertTrue("Template remove fail", manager.remove(group, template3));
+    }
+
+    @Test
+    public void ExportTemplateTest() {
+        String exportPath = ResourceUtil.getAbsolutePath(PATH_EXPORT);
+
+        ITemplateGroup group = new TemplateGroup();
+        group.setName(TEST_GROUP);
+        ITemplate template1 = createTemplate(TEST_TEMPLATE1);
+        ITemplateManager manager = new TemplateManager();
+
+        // if directory not exists then export template have to be failed
+        File file = new File(exportPath);
+        Assert.assertFalse(file.exists());
+        Assert.assertFalse(manager.exportTemplate(template1, exportPath));
+
+        // create test directory
+        Assert.assertTrue("Test directory create fail", file.mkdirs());
+        Assert.assertTrue("Template export  fail", manager.exportTemplate(template1, exportPath));
+    }
+
+    @Test
+    public void ImportTemplateTest() {
+        String importPath = ResourceUtil.getAbsolutePath(PATH_IMPORT);
+        ITemplateGroup group = new TemplateGroup();
+        group.setName(TEST_GROUP);
+        TemplateLoader loader = new TemplateLoader();
+        ITemplate template1 = loader.load(importPath + File.separator + TEST_TEMPLATE1);
+        Assert.assertNotNull("Template load fail", template1);
+        ITemplateManager manager = new TemplateManager();
+        Assert.assertTrue("Template import fail", manager.importTemplate(template1, group));
+    }
+
+    @Test
+    public void RemoveTemplateGroupTest() {
+        ITemplateGroup group = new TemplateGroup();
+        group.setName(TEST_GROUP);
+        ITemplateManager manager = new TemplateManager();
+        Assert.assertTrue("Template group remove fail", manager.remove(group));
+    }
+
+    @Test 
+    public void CleanTest() {
+        String exportPath = ResourceUtil.getAbsolutePath(PATH_EXPORT);
+        // plugin/test directory
+        File file = new File(exportPath);
+        Assert.assertTrue("Test directory exist fail", file.exists());
+        // remove test directory
+        Assert.assertTrue("Test directory remove fail", FileUtil.recursiveDelete(file));
+    }
+}
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/empty/desciptor.xml b/org.tizen.webuibuilder/res/page-templates/basic/empty/desciptor.xml
deleted file mode 100644 (file)
index e17f26f..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-<div data-role="page" id="empty">
-    <div data-role="header"id="header1" data-position="fixed">
-        <h1 id="headingone1">Header</h1>
-    </div>
-    <div data-role="content" id="content1" data-scroll="y" data-handler="false">
-    </div>
-</div>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/empty/image.png b/org.tizen.webuibuilder/res/page-templates/basic/empty/image.png
deleted file mode 100644 (file)
index 4f31aa9..0000000
Binary files a/org.tizen.webuibuilder/res/page-templates/basic/empty/image.png and /dev/null differ
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/empty/meta.xml b/org.tizen.webuibuilder/res/page-templates/basic/empty/meta.xml
deleted file mode 100644 (file)
index c3d73fb..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<?xml-stylesheet type='text/xsl' href='./template.xsl'?>
-<Metadata>
-    <version>1.0</version>
-    <name>empty</name>
-    <image>image.png</image>
-    <descriptor>desciptor.xml</descriptor>
-</Metadata>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/empty/template.xsl b/org.tizen.webuibuilder/res/page-templates/basic/empty/template.xsl
deleted file mode 100644 (file)
index c266a8f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <xsl:template match="/">
-    <html>
-      <head>
-        <style type="text/css">
-          html,body {
-          font-family:Arial;
-          margin: 0px;
-          }
-          td
-          {
-          font-size:13px;
-          }
-          .name
-          {
-          font-size:16px;
-          color:#ffffff;
-          height:26px;
-          background-color:#6d96ac;
-          }
-          .category
-          {
-          font-size:16px;
-          color:#ffffff;
-          height:30px;
-          background-color:#6d96ac;
-          }
-          .contents
-          {
-          padding: 6px 10px 14px 10px;
-          }
-          table#widgets td
-          {
-          border: solid 1px #6d96ac;
-          border-collapse: collapse;
-          }
-          .widgetname
-          {
-          font-weight: bold;
-          text-align: center;
-          width: 20%;
-          word-break:break-all;
-          }
-          table#references td
-          {
-          width: 100%;
-          border: 0px;
-          border-spacing: 0px;
-          padding: 5px;
-          }
-          .refname
-          {
-          width: 100%;
-          font-weight: bold;
-          }
-        </style>
-      </head>
-      <body>
-       <img>
-         <xsl:attribute name="src">
-                   <xsl:value-of select="Metadata/image"/>
-          </xsl:attribute>
-          <xsl:attribute name="width">
-                   <xsl:value-of select="180"/>
-          </xsl:attribute>
-          <xsl:attribute name="height">
-           <xsl:value-of select="300"/>
-          </xsl:attribute>
-          <xsl:attribute name="align">
-           <xsl:value-of select="center"/>
-          </xsl:attribute>
-          <xsl:attribute name="alt">
-           <xsl:value-of select="Error"/>
-          </xsl:attribute>
-        </img>
-      </body>
-    </html>
-  </xsl:template>
-
-</xsl:stylesheet>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/multi/desciptor.xml b/org.tizen.webuibuilder/res/page-templates/basic/multi/desciptor.xml
deleted file mode 100644 (file)
index 5fd8426..0000000
+++ /dev/null
@@ -1,37 +0,0 @@
-<div data-role="page" id="multi">
-    <div data-role="header" data-position="fixed">
-        <h1>Multi-page application</h1>
-    </div><!-- /header -->
-
-    <div data-role="content">
-        <h2>One</h2>
-        <p>
-            This is a multi-page boilerplate template that you can copy to build
-            your first Tizen Web UI Framework page. This template contains multiple "page"
-            containers inside.
-        </p>
-        <p>
-            You link to internal pages by referring to the ID of the page you
-            want to show. For example, to <a href="#two">link</a> to the page
-            with an ID of "two", my link would have a
-            <code>href="#two"</code>
-            in the code.
-        </p>
-        <h3>Show internal pages:</h3>
-        <p><a href="#two" data-role="button">Show page "two"</a></p>
-        <p><a href="#popup"  data-role="button" data-position-to="window" data-rel="popup">Show page "popup" (as a dialog)</a></p>
-
-        <div id="popup" data-role="popup" data-style="center_title_1btn">
-            <div class="ui-popup-title">
-                <h1>Popup title</h1>
-        </div>
-        <div class="ui-popup-text">Pop-up dialog box, a child window that blocks user interact to the parent windows</div>
-        <a href="#" data-inline="true" data-role="button" onclick="javascript:$('#popup').popup('close');">Close</a>
-        </div>
-    </div><!-- /content -->
-
-    <div data-role="footer" data-position="fixed">
-        <h4>Page Footer</h4>
-    </div><!-- /footer -->
-</div><!-- /page one -->
-
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/multi/image.png b/org.tizen.webuibuilder/res/page-templates/basic/multi/image.png
deleted file mode 100644 (file)
index 4f31aa9..0000000
Binary files a/org.tizen.webuibuilder/res/page-templates/basic/multi/image.png and /dev/null differ
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/multi/index.html b/org.tizen.webuibuilder/res/page-templates/basic/multi/index.html
deleted file mode 100644 (file)
index 9b763dd..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-    <meta charset="utf-8"/>
-    <meta name="description" content="A Tizen Web UI FW multi-page template generated by Tizen Web IDE"/>
-    <meta name="viewport" content="width=device-width,user-scalable=no"/>
-    
-    <link rel="stylesheet" href="tizen-web-ui-fw/latest/themes/tizen-white/tizen-web-ui-fw-theme.css" name="tizen-theme"/>
-    <title>Tizen Web IDE - Template - Tizen - Tizen Web UI Framework - Mutil-Page</title>
-    <!--NOTE:
-        jquery.js and web-ui-fw.js must be included.
-        DO NOT REMOVE below code!
-    -->
-    <script src="tizen-web-ui-fw/latest/js/jquery.js"></script>
-    <script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw-libs.js"></script>
-    <script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw.js"
-        data-framework-theme="tizen-white"></script>
-
-    <!--NOTE:
-        Additional scripts and css files are to be placed here.
-        You can use jQuery namespace($) and all functionalities in jQuery
-        in your script.  For example:
-
-            <script src="main.js"></script>
-            <link rel="stylesheet" href="my.css">
-    -->
-    <script type="text/javascript" src="./js/main.js"></script>
-    <link rel="stylesheet" type="text/css" href="./css/style.css"/>
-</head>
-
-<body>
-    <!-- Start of first page: #one -->
-    <div data-role="page" id="one">
-        <div data-role="header" data-position="fixed">
-            <h1>Multi-page application</h1>
-        </div><!-- /header -->
-
-        <div data-role="content">
-            <h2>One</h2>
-            <p>
-                This is a multi-page boilerplate template that you can copy to build
-                your first Tizen Web UI Framework page. This template contains multiple "page"
-                containers inside.
-            </p>
-            <p>
-                You link to internal pages by referring to the ID of the page you
-                want to show. For example, to <a href="#two">link</a> to the page
-                with an ID of "two", my link would have a
-                <code>href="#two"</code>
-                in the code.
-            </p>
-            <h3>Show internal pages:</h3>
-            <p><a href="#two" data-role="button">Show page "two"</a></p>
-            <p><a href="#popup"  data-role="button" data-position-to="window" data-rel="popup">Show page "popup" (as a dialog)</a></p>
-
-            <div id="popup" data-role="popup" data-style="center_title_1btn">
-                <div class="ui-popup-title">
-                    <h1>Popup title</h1>
-                </div>
-                <div class="ui-popup-text">Pop-up dialog box, a child window that blocks user interact to the parent windows</div>
-                <a href="#" data-inline="true" data-role="button" onclick="javascript:$('#popup').popup('close');">Close</a>
-            </div>
-        </div><!-- /content -->
-
-        <div data-role="footer" data-position="fixed">
-            <h4>Page Footer</h4>
-        </div><!-- /footer -->
-    </div><!-- /page one -->
-
-
-    <!-- Start of second page: #two -->
-    <div data-role="page" id="two">
-        <div data-role="header" data-position="fixed">
-            <h1>Two</h1>
-        </div><!-- /header -->
-
-        <div data-role="content">
-            <h2>Two</h2>
-            <p>I have an id of "two" on my page container. I'm the second
-                page container in this multi-page template.</p>
-            <p><a href="#one" data-direction="reverse" data-role="button">Back to page "one"</a></p>
-        </div><!-- /content -->
-
-        <div data-role="footer" data-position="fixed">
-            <h4>Page Footer</h4>
-        </div><!-- /footer -->
-    </div><!-- /page two -->
-
-</body>
-</html>
\ No newline at end of file
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/multi/meta.xml b/org.tizen.webuibuilder/res/page-templates/basic/multi/meta.xml
deleted file mode 100644 (file)
index 902f504..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<?xml-stylesheet type='text/xsl' href='./template.xsl'?>
-<Metadata>
-    <version>1.0</version>
-    <name>multi</name>
-    <image>image.png</image>
-    <descriptor>desciptor.xml</descriptor>
-</Metadata>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/multi/template.xsl b/org.tizen.webuibuilder/res/page-templates/basic/multi/template.xsl
deleted file mode 100644 (file)
index c266a8f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <xsl:template match="/">
-    <html>
-      <head>
-        <style type="text/css">
-          html,body {
-          font-family:Arial;
-          margin: 0px;
-          }
-          td
-          {
-          font-size:13px;
-          }
-          .name
-          {
-          font-size:16px;
-          color:#ffffff;
-          height:26px;
-          background-color:#6d96ac;
-          }
-          .category
-          {
-          font-size:16px;
-          color:#ffffff;
-          height:30px;
-          background-color:#6d96ac;
-          }
-          .contents
-          {
-          padding: 6px 10px 14px 10px;
-          }
-          table#widgets td
-          {
-          border: solid 1px #6d96ac;
-          border-collapse: collapse;
-          }
-          .widgetname
-          {
-          font-weight: bold;
-          text-align: center;
-          width: 20%;
-          word-break:break-all;
-          }
-          table#references td
-          {
-          width: 100%;
-          border: 0px;
-          border-spacing: 0px;
-          padding: 5px;
-          }
-          .refname
-          {
-          width: 100%;
-          font-weight: bold;
-          }
-        </style>
-      </head>
-      <body>
-       <img>
-         <xsl:attribute name="src">
-                   <xsl:value-of select="Metadata/image"/>
-          </xsl:attribute>
-          <xsl:attribute name="width">
-                   <xsl:value-of select="180"/>
-          </xsl:attribute>
-          <xsl:attribute name="height">
-           <xsl:value-of select="300"/>
-          </xsl:attribute>
-          <xsl:attribute name="align">
-           <xsl:value-of select="center"/>
-          </xsl:attribute>
-          <xsl:attribute name="alt">
-           <xsl:value-of select="Error"/>
-          </xsl:attribute>
-        </img>
-      </body>
-    </html>
-  </xsl:template>
-
-</xsl:stylesheet>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/single/desciptor.xml b/org.tizen.webuibuilder/res/page-templates/basic/single/desciptor.xml
deleted file mode 100644 (file)
index f83b3ad..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<div data-role="page" id="single">
-<div data-role="header"id="header1" data-position="fixed">
-    <h1 id="headingone1">Single-page application</h1>
-</div>
-<div data-role="content" id="content1" data-scroll="y" data-handler="false">
-    <h4 id="headingfour1">This is a single page boilerplate template that you can copy to build your first Tizen Web UI Framework page.</h4>
-</div>
-</div>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/single/image.png b/org.tizen.webuibuilder/res/page-templates/basic/single/image.png
deleted file mode 100644 (file)
index 4f31aa9..0000000
Binary files a/org.tizen.webuibuilder/res/page-templates/basic/single/image.png and /dev/null differ
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/single/index.html b/org.tizen.webuibuilder/res/page-templates/basic/single/index.html
deleted file mode 100644 (file)
index d419f89..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE html>
-<html>
-
-<head>
-    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
-    <meta name="description" content="A Tizen Web Application Template">
-    <meta name="viewport" content="width=device-width,user-scalable=no">
-
-    <link rel="stylesheet" href="tizen-web-ui-fw/latest/themes/tizen-white/tizen-web-ui-fw-theme.css" name="tizen-theme">
-    <title></title>
-
-    <!-- Javascripts -->
-
-    <script src="tizen-web-ui-fw/latest/js/jquery.js"></script>
-    <script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw-libs.js"></script>
-    <script src="tizen-web-ui-fw/latest/js/tizen-web-ui-fw.js" data-framework-theme="tizen-white"></script>
-    <script src="./tizen-ui-builder-fw/page-system.js"></script>
-    <script src="./app.managed.js"></script>
-
-    <script src="./tizen-ui-builder-fw/app-entry.js"></script>
-    <script src="./app.js"></script>
-
-    <!-- Style sheets -->
-
-    <link rel="stylesheet" type="text/css" href="./app.css">
-    <link rel="stylesheet" type="text/css" href="./managed.css">
-</head>
-
-<body>
-    <div data-role="page" id="page1">
-        <div data-role="header"id="header1" data-position="fixed">
-            <h1 id="headingone1">Single-page application</h1>
-        </div>
-        <div data-role="content" id="content1" data-scroll="y" data-handler="false">
-            <h4 id="headingfour1">This is a single page boilerplate template that you can copy to build your first Tizen Web UI Framework page.</h4>
-        </div>
-    </div>
-</body>
-
-</html>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/single/meta.xml b/org.tizen.webuibuilder/res/page-templates/basic/single/meta.xml
deleted file mode 100644 (file)
index 89961c3..0000000
+++ /dev/null
@@ -1,8 +0,0 @@
-<?xml version='1.0' encoding='UTF-8' standalone='yes'?>
-<?xml-stylesheet type='text/xsl' href='./template.xsl'?>
-<Metadata>
-    <version>1.0</version>
-    <name>single</name>
-    <image>image.png</image>
-    <descriptor>desciptor.xml</descriptor>
-</Metadata>
diff --git a/org.tizen.webuibuilder/res/page-templates/basic/single/template.xsl b/org.tizen.webuibuilder/res/page-templates/basic/single/template.xsl
deleted file mode 100644 (file)
index c266a8f..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-
-<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
-  <xsl:template match="/">
-    <html>
-      <head>
-        <style type="text/css">
-          html,body {
-          font-family:Arial;
-          margin: 0px;
-          }
-          td
-          {
-          font-size:13px;
-          }
-          .name
-          {
-          font-size:16px;
-          color:#ffffff;
-          height:26px;
-          background-color:#6d96ac;
-          }
-          .category
-          {
-          font-size:16px;
-          color:#ffffff;
-          height:30px;
-          background-color:#6d96ac;
-          }
-          .contents
-          {
-          padding: 6px 10px 14px 10px;
-          }
-          table#widgets td
-          {
-          border: solid 1px #6d96ac;
-          border-collapse: collapse;
-          }
-          .widgetname
-          {
-          font-weight: bold;
-          text-align: center;
-          width: 20%;
-          word-break:break-all;
-          }
-          table#references td
-          {
-          width: 100%;
-          border: 0px;
-          border-spacing: 0px;
-          padding: 5px;
-          }
-          .refname
-          {
-          width: 100%;
-          font-weight: bold;
-          }
-        </style>
-      </head>
-      <body>
-       <img>
-         <xsl:attribute name="src">
-                   <xsl:value-of select="Metadata/image"/>
-          </xsl:attribute>
-          <xsl:attribute name="width">
-                   <xsl:value-of select="180"/>
-          </xsl:attribute>
-          <xsl:attribute name="height">
-           <xsl:value-of select="300"/>
-          </xsl:attribute>
-          <xsl:attribute name="align">
-           <xsl:value-of select="center"/>
-          </xsl:attribute>
-          <xsl:attribute name="alt">
-           <xsl:value-of select="Error"/>
-          </xsl:attribute>
-        </img>
-      </body>
-    </html>
-  </xsl:template>
-
-</xsl:stylesheet>
diff --git a/org.tizen.webuibuilder/res/snippets/1.test/descriptor.xml b/org.tizen.webuibuilder/res/snippets/1.test/descriptor.xml
deleted file mode 100644 (file)
index 918752f..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<descriptor>
-    <tizen.css/>
-    <tizen.part>
-        <html.divcontrol id="divcontrol1" style="overflow: hidden;" class="">
-            <tizen.button id="button1" text="Button" data-style="" data-icon="" data-iconpos="" data-inline=""/>
-            <tizen.progressbar id="progressbar1"/>
-        </html.divcontrol>
-    </tizen.part>
-</descriptor>
diff --git a/org.tizen.webuibuilder/res/snippets/1.test/image.png b/org.tizen.webuibuilder/res/snippets/1.test/image.png
deleted file mode 100644 (file)
index b6fc7cd..0000000
Binary files a/org.tizen.webuibuilder/res/snippets/1.test/image.png and /dev/null differ
diff --git a/org.tizen.webuibuilder/res/snippets/1.test/meta.xml b/org.tizen.webuibuilder/res/snippets/1.test/meta.xml
deleted file mode 100644 (file)
index bfcb0d8..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
-<Metadata>
-    <version>1.0</version>
-    <id>1</id>
-    <name>test</name>
-    <description></description>
-    <image>image.png</image>
-    <descriptor>descriptor.xml</descriptor>
-</Metadata>
index 19e9e8f..74e6556 100644 (file)
@@ -1388,49 +1388,50 @@ public class AnimatorModelManager implements ISelectionListener, IPageDataSetLis
      */
     public void removeAnimatorRelatedResources() {
         if (appManager instanceof AppManagerForHTML) {
-            if (!((AnimatorPart)rootPart).hasAnimation()) {
+            if (!((AnimatorPart) rootPart).hasAnimation()) {
                 Document editDoc = ((AppManagerForHTML) appManager).getDocument();
                 NodeList heads = editDoc.getElementsByTagName("head");
                 Element head = null;
                 if (heads != null) {
                     head = (Element) heads.item(0);
                 } else {
-                       head = editDoc.createElement("head");
-                    if(head != null) {
-                       editDoc.insertBefore(head, editDoc.getFirstChild());
+                    head = editDoc.createElement("head");
+                    if (head != null) {
+                        editDoc.insertBefore(head, editDoc.getFirstChild());
                     }
                 }
-
-                NodeList scripts = head.getElementsByTagName("script");
-                if (scripts != null) {
-                    int len = scripts.getLength();
-                    for (int i = 0; i < len; i++) {
-                        Element script = (Element) scripts.item(i);
-                        String src = script.getAttribute("src");
-                        int fileidx = src.lastIndexOf("/");
-                        String filename = src.substring(fileidx + 1);
-                        if (filename.equals(AnimatorConstants.ANIMATOR_MODEL_JS_FILE)
-                                || filename.equals(AnimatorConstants.ANIMATOR_FRAMEWORK_JSPATH)) {
-                            // elm.removeChild(script);
-                            script.removeAttribute("src");
-                            script.setTextContent("");
+                if (head != null) {
+                    NodeList scripts = head.getElementsByTagName("script");
+                    if (scripts != null) {
+                        int len = scripts.getLength();
+                        for (int i = 0; i < len; i++) {
+                            Element script = (Element) scripts.item(i);
+                            String src = script.getAttribute("src");
+                            int fileidx = src.lastIndexOf("/");
+                            String filename = src.substring(fileidx + 1);
+                            if (filename.equals(AnimatorConstants.ANIMATOR_MODEL_JS_FILE)
+                                    || filename.equals(AnimatorConstants.ANIMATOR_FRAMEWORK_JSPATH)) {
+                                // elm.removeChild(script);
+                                script.removeAttribute("src");
+                                script.setTextContent("");
+                            }
                         }
                     }
-                }
-                NodeList links = head.getElementsByTagName("link");
-                if (links != null) {
-                    int len = links.getLength();
-                    for (int i = 0; i < len; i++) {
-                        Element link = (Element) links.item(i);
-                        String src = link.getAttribute("href");
-                        int fileidx = src.lastIndexOf("/");
-                        String filename = src.substring(fileidx + 1);
-                        if (filename.equals(AnimatorConstants.ANIMATOR_MODEL_CSS_FILE)) {
-                            // elm.removeChild(script);
-                            link.removeAttribute("href");
-                            link.removeAttribute("rel");
-                            link.removeAttribute("type");
-                            link.setTextContent("");
+                    NodeList links = head.getElementsByTagName("link");
+                    if (links != null) {
+                        int len = links.getLength();
+                        for (int i = 0; i < len; i++) {
+                            Element link = (Element) links.item(i);
+                            String src = link.getAttribute("href");
+                            int fileidx = src.lastIndexOf("/");
+                            String filename = src.substring(fileidx + 1);
+                            if (filename.equals(AnimatorConstants.ANIMATOR_MODEL_CSS_FILE)) {
+                                // elm.removeChild(script);
+                                link.removeAttribute("href");
+                                link.removeAttribute("rel");
+                                link.removeAttribute("type");
+                                link.setTextContent("");
+                            }
                         }
                     }
                 }
index bf6751f..d25b7ab 100644 (file)
@@ -48,7 +48,7 @@ public class AnimatorAnimationDeserializer extends AnimatorModelDeserializer<Ani
                super(modelFactory);
        }
 
-       /*
+    /*
      * (non-Javadoc)
      * 
      * @see
@@ -57,15 +57,16 @@ public class AnimatorAnimationDeserializer extends AnimatorModelDeserializer<Ani
      * com.google.gson.JsonDeserializationContext)
      */
     @Override
-    public AnimatorModel deserialize(JsonElement json, Type arg1,
-                                         JsonDeserializationContext context)
+    public AnimatorModel deserialize(JsonElement json, Type arg1, JsonDeserializationContext context)
             throws JsonParseException {
 
         AnimatorAnimation animation = null;
         if (getPagePart() != null) {
             JsonObject jobject = (JsonObject) json;
 
-            animation = (AnimatorAnimation)getModelFactory().createAnimatorModel(AnimatorModelType.ANIMATION);
+            animation =
+                    (AnimatorAnimation) getModelFactory()
+                            .createAnimatorModel(AnimatorModelType.ANIMATION);
             animation.setId(jobject.get("id").getAsString());
 
             JsonElement jsonElement = jobject.get("name");
@@ -92,37 +93,42 @@ public class AnimatorAnimationDeserializer extends AnimatorModelDeserializer<Ani
                     AnimatorWidget widget = (AnimatorWidget) animation.getChild(id);
                     Part widgetPart = null;
                     if (widget == null) {
-                       widgetPart = (Part) getPagePart().getChildOfIdPropertyValue(id, true);
-                       if(widgetPart != null) {
-                               widget = (AnimatorWidget)getModelFactory().createAnimatorModel(AnimatorModelType.WIDGET);
-                               if(widget != null) {
-                                       widget.setPartLink(widgetPart);
+                        widgetPart = (Part) getPagePart().getChildOfIdPropertyValue(id, true);
+                        if (widgetPart != null) {
+                            widget =
+                                    (AnimatorWidget) getModelFactory()
+                                            .createAnimatorModel(AnimatorModelType.WIDGET);
+                            if (widget != null) {
+                                widget.setPartLink(widgetPart);
                                 widget.setId(widgetPart.getPropertyValue("id"));
                                 widget.setParent(animation);
                                 animation.addChild(widget);
-                               }
-                       }
-//                        widgetPart = (Part) getPagePart().getChildOfIdPropertyValue(id, true);
-//                        widget = (AnimatorWidget)getModelFactory().createAnimatorModel(AnimatorModelType.WIDGET);
-//                        widget.setPartLink(widgetPart);
-//                        widget.setId(widgetPart.getPropertyValue("id"));
-//                        widget.setParent(animation);
-//                        animation.addChild(widget);
+                            }
+                        }
+                        // widgetPart = (Part) getPagePart().getChildOfIdPropertyValue(id, true);
+                        // widget =
+                        // (AnimatorWidget)getModelFactory().createAnimatorModel(AnimatorModelType.WIDGET);
+                        // widget.setPartLink(widgetPart);
+                        // widget.setId(widgetPart.getPropertyValue("id"));
+                        // widget.setParent(animation);
+                        // animation.addChild(widget);
                     }
 
-                    widget.setLock(membersObject.get("lock").getAsBoolean());
-                    widget.setVisibility(membersObject.get("visibility").getAsBoolean());
-
-                    if (membersObject.has("animation")) {
-                        AnimatorSelector selector =
-                                context.deserialize(membersObject.get("animation")
-                                        .getAsJsonObject(), AnimatorSelector.class);
-                        selector.setSelector(membersObject.get("selector").getAsString());
-                        selector.setParent(widget);
-                        if (widgetPart != null) {
-                            selector.setPartLink(widgetPart);
+                    if (widget != null) {
+                        widget.setLock(membersObject.get("lock").getAsBoolean());
+                        widget.setVisibility(membersObject.get("visibility").getAsBoolean());
+
+                        if (membersObject.has("animation")) {
+                            AnimatorSelector selector =
+                                    context.deserialize(membersObject.get("animation")
+                                            .getAsJsonObject(), AnimatorSelector.class);
+                            selector.setSelector(membersObject.get("selector").getAsString());
+                            selector.setParent(widget);
+                            if (widgetPart != null) {
+                                selector.setPartLink(widgetPart);
+                            }
+                            widget.addChild(selector);
                         }
-                        widget.addChild(selector);
                     }
                 }
             }
index 6063137..67588be 100644 (file)
@@ -65,12 +65,6 @@ public class WebUIBuilderBuilder extends IncrementalProjectBuilder {
         return projectManager.getOldDescriptorManager();
     }
 
-    // private static PartFactory getPartFactory(IProject project) {
-    // ProjectManager projectManager = ProjectManager
-    // .getProjectManager(project);
-    // return projectManager.getPartFactory();
-    // }
-
     public static void build(IProject project) throws CoreException, IOException {
         BuildProjectOperation op = new BuildProjectOperation(project);
         try {
@@ -320,57 +314,50 @@ public class WebUIBuilderBuilder extends IncrementalProjectBuilder {
         // delete Html file
         if ((style & BuilderConstants.HTML_FILE) != 0) {
             IFile file = PageManager.getHtmlFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
 
         if ((style & BuilderConstants.MANAGED_JS_FILE) != 0) {
             IFile file = PageManager.getManagedJsFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
 
         if ((style & BuilderConstants.JS_FILE) != 0) {
             IFile file = PageManager.getJsFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
 
         if ((style & BuilderConstants.CSS_FILE) != 0) {
             IFile file = PageManager.getCssFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
 
         if ((style & BuilderConstants.MANAGED_CSS_FILE) != 0) {
             IFile file = PageManager.getManagedCssFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
 
         if ((style & AnimatorConstants.ANIMATOR_MANAGED_JS_FILE) != 0) {
             IFile file = PageManager.getAnimatorManagedJsFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
 
         if ((style & AnimatorConstants.ANIMATOR_MANAGED_CSS_FILE) != 0) {
             IFile file = PageManager.getAnimatorManagedCssFile(res);
-            if (file.exists()) {
+            if (file != null && file.exists()) {
                 file.delete(false, null);
-            } else {
             }
         }
     }
@@ -393,7 +380,7 @@ public class WebUIBuilderBuilder extends IncrementalProjectBuilder {
                 // build(project);
                 break;
             default:
-                throw new CoreException(null);
+                break;
         }
         project.refreshLocal(IResource.DEPTH_INFINITE, null);
 
index cd5022d..48c2a32 100644 (file)
@@ -25,11 +25,9 @@ package org.tizen.webuibuilder.model.app;
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.Map;
 
 import org.eclipse.swt.widgets.Display;
 import org.tizen.webuibuilder.bridge.DesignerGoingBridge;
-import org.tizen.webuibuilder.bridge.DesignerGoingBridge.WidgetPosition;
 import org.tizen.webuibuilder.browserwidget.ImageBufferedBrowser;
 import org.tizen.webuibuilder.browserwidget.ImageBufferedBrowserWidget.ContentsAreaChangedListener;
 
@@ -38,7 +36,6 @@ public class ThumbnailManager implements Runnable {
 
     private List<ImageBufferedBrowser> imageBufferedBrowserList;
     private DesignerGoingBridge goingBridge;
-    private Map<String, WidgetPosition> allWidgetPositions;
     private Display display;
     private ContentsAreaChangedListener listener;
     private int tickTime = 40;
@@ -49,8 +46,6 @@ public class ThumbnailManager implements Runnable {
         this.display = display;
         this.listener = listener;
 
-        allWidgetPositions = null;
-
         display.timerExec(tickTime, this);
     }
 
@@ -74,29 +69,8 @@ public class ThumbnailManager implements Runnable {
         return imageBufferedBrowserList.get(index);
     }
 
-    public Map<String, WidgetPosition> getWidgetPositions() {
-        if (allWidgetPositions == null) {
-            allWidgetPositions = goingBridge.getAllWidgetPositions();
-        }
-        return allWidgetPositions;
-    }
-
-    public WidgetPosition getWidgetPosition(String partId) {
-        Map<String, WidgetPosition> pos = getWidgetPositions();
-        return (pos != null) ? pos.get(partId) : null;
-    }
-
-    private void invalidateWidgetPositions() {
-        allWidgetPositions = null;
-    }
-
     public void setBrowserSize(int index, int width, int height) {
         getBrowser(index).setBrowserSize(width, height);
-        invalidateWidgetPositions();
-    }
-
-    public void updateSizeEditings() {
-        invalidateWidgetPositions();
     }
 
     @Override
index 9e296fc..d4320bb 100644 (file)
@@ -34,19 +34,13 @@ import org.w3c.dom.Document;
 
 public class HtmlMetaFileData {
 
-    public class Page {
+    private class Page {
         public String name;
         public Part rootPart;
 
-        // public List<NScreenModel> nscreenModelList = new
-        // ArrayList<NScreenModel>();
-
-        public Page(String name, Part rootPart/*
-                                               * , List<NScreenModel> nscreenModelList
-                                               */) {
+        public Page(String name, Part rootPart) {
             this.name = name;
             this.rootPart = rootPart;
-            // this.nscreenModelList = nscreenModelList;
         }
     }
 
index 6b9176c..e876aeb 100644 (file)
@@ -33,6 +33,7 @@ import org.eclipse.ui.IWorkbench;
 import org.eclipse.ui.IWorkbenchPart;
 import org.eclipse.ui.PlatformUI;
 import org.tizen.webuibuilder.gef.commands.CommandUtil;
+import org.tizen.webuibuilder.model.ISerializer;
 import org.tizen.webuibuilder.model.Part;
 import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
 import org.tizen.webuibuilder.pagetemplate.ui.wizards.CreateWizard;
@@ -87,8 +88,13 @@ public class CreateAction extends SelectionAction {
      */
     @Override
     public void run() {
-        List<Part> parts = CommandUtil.getOrderedParts(rootEditPart, getSelectedObjects());
-        CreateWizard wizard = new CreateWizard(parts, descriptorManager);
+        List<?> selectedObjects = getSelectedObjects();
+        Object object = selectedObjects.get(0);
+        if (!(object instanceof ISerializer)) {
+            return;
+        }
+        ISerializer model = (ISerializer) object;
+        CreateWizard wizard = new CreateWizard(model, descriptorManager);
         IWorkbench workbench = PlatformUI.getWorkbench();
         Shell shell = workbench.getActiveWorkbenchWindow().getShell();
         WizardDialog dialog = new WizardDialog(shell, wizard);
index f9c33ba..2782b35 100644 (file)
@@ -57,7 +57,7 @@ public class TemplateManager implements ITemplateManager {
     private String getTemplatePath(ITemplateGroup group, ITemplate template) {
         String path =
                 getDefaultPath() + File.separator + group.getName() + File.separator
-                        + template.getName();
+                        + template.getId() + "." + template.getName();
         return path;
     }
 
@@ -116,6 +116,7 @@ public class TemplateManager implements ITemplateManager {
         if (!loader.save(path)) {
             return false;
         }
+        templateGroups.add(group);
         return true;
     }
 
@@ -132,6 +133,7 @@ public class TemplateManager implements ITemplateManager {
         if (!FileUtil.recursiveDelete(file)) {
             return false;
         }
+        templateGroups.remove(group);
         return true;
     }
 
@@ -144,12 +146,18 @@ public class TemplateManager implements ITemplateManager {
      */
     @Override
     public boolean create(ITemplateGroup group, ITemplate template) {
+        // create id
+        String id = group.createId();
+        template.setId(id);
+
         String path = getTemplatePath(group, template);
         TemplateLoader loader = new TemplateLoader();
+        template.setId(id);
         loader.template = template;
         if (!loader.save(path)) {
             return false;
         }
+        group.add(template);
         return true;
     }
 
@@ -167,6 +175,7 @@ public class TemplateManager implements ITemplateManager {
         if (!FileUtil.recursiveDelete(file)) {
             return false;
         }
+        group.remove(template);
         return true;
     }
 
index 1d3754f..54bda8b 100644 (file)
 
 package org.tizen.webuibuilder.pagetemplate.model;
 
-import java.util.List;
+import java.util.Collection;
 
 
 public interface ITemplateGroup {
+    public Collection<ITemplate> getTemplates();
+
+    public String createId();
+
     public void setName(String name);
 
     public String getName();
 
-    public List<ITemplate> getTemplates();
-
     public void add(ITemplate template);
 
     public void remove(ITemplate template);
index b764ce8..6bc815f 100644 (file)
 
 package org.tizen.webuibuilder.pagetemplate.model;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.Map;
 
 
 public class TemplateGroup implements ITemplateGroup {
-    private List<ITemplate> templates = null;
     private String name = null;
+    private Map<Integer, ITemplate> templates = null;
 
     public TemplateGroup() {
-        templates = new ArrayList<ITemplate>();
+        templates = new HashMap<Integer, ITemplate>();
     }
 
     /*
@@ -64,7 +65,8 @@ public class TemplateGroup implements ITemplateGroup {
      */
     @Override
     public void add(ITemplate template) {
-        templates.add(template);
+        Integer key = Integer.parseInt(template.getId());
+        templates.put(key, template);
     }
 
     /*
@@ -75,7 +77,8 @@ public class TemplateGroup implements ITemplateGroup {
      */
     @Override
     public void remove(ITemplate template) {
-        templates.remove(template);
+        Integer key = Integer.parseInt(template.getId());
+        templates.remove(key);
     }
 
     /*
@@ -84,8 +87,22 @@ public class TemplateGroup implements ITemplateGroup {
      * @see org.tizen.webuibuilder.pagetemplate.model.ITemplateGroup#getTemplates()
      */
     @Override
-    public List<ITemplate> getTemplates() {
-        return templates;
+    public Collection<ITemplate> getTemplates() {
+        return templates.values();
     }
 
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.tizen.webuibuilder.pagetemplate.model.ITemplateGroup#createId()
+     */
+    @Override
+    public String createId() {
+        // initialize id
+        Integer id = Integer.valueOf(1);
+        while (templates.containsKey(id)) {
+            id = id + 1;
+        }
+        return id.toString();
+    }
 }
\ No newline at end of file
index efea2a4..77205b3 100644 (file)
 
 package org.tizen.webuibuilder.pagetemplate.ui.wizard.policy;
 
-import java.util.List;
-
 import org.eclipse.jface.resource.ImageDescriptor;
 import org.eclipse.swt.graphics.Image;
 import org.tizen.webuibuilder.BuilderConstants;
-import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.ISerializer;
 import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
 import org.tizen.webuibuilder.pagetemplate.converter.Converter;
 import org.tizen.webuibuilder.pagetemplate.manager.ITemplateManager;
@@ -43,7 +41,7 @@ import org.tizen.webuibuilder.utility.ResourceManager;
 
 
 public class CreatePolicy implements IWizardPolicy {
-    private List<Part> parts = null;
+    private ISerializer model = null;
     private ITemplateGroup group = null;
     private String name = null;
     private DescriptorManager descriptorManager = null;
@@ -52,10 +50,10 @@ public class CreatePolicy implements IWizardPolicy {
         super();
     }
 
-    public CreatePolicy(List<Part> parts, ITemplateGroup group, String name,
+    public CreatePolicy(ISerializer model, ITemplateGroup group, String name,
             DescriptorManager descriptorManager) {
         this();
-        this.parts = parts;
+        this.model = model;
         this.group = group;
         this.name = name;
         this.descriptorManager = descriptorManager;
@@ -83,7 +81,8 @@ public class CreatePolicy implements IWizardPolicy {
         template.setImageDescriptor(imageDescriptor);
         IDescriptor descriptor = new Descriptor();
         Converter converter = new Converter();
-        String text = converter.convert(parts.get(0));
+//        String text = converter.convert(model);
+        String text = "";
         descriptor.setText(text);
         template.setDescriptor(descriptor);
 
index c878ef9..296698c 100644 (file)
 
 package org.tizen.webuibuilder.pagetemplate.ui.wizards;
 
-import java.util.List;
-
 import org.eclipse.jface.viewers.IStructuredSelection;
 import org.eclipse.jface.wizard.Wizard;
 import org.eclipse.ui.INewWizard;
 import org.eclipse.ui.IWorkbench;
-import org.tizen.webuibuilder.model.Part;
+import org.tizen.webuibuilder.model.ISerializer;
 import org.tizen.webuibuilder.model.descriptors.DescriptorManager;
 import org.tizen.webuibuilder.pagetemplate.model.ITemplateGroup;
 import org.tizen.webuibuilder.pagetemplate.ui.wizard.policy.CreatePolicy;
@@ -39,7 +37,7 @@ import org.tizen.webuibuilder.utility.ResourceManager;
 
 
 public class CreateWizard extends Wizard implements INewWizard {
-    private List<Part> parts;
+    private ISerializer model;
     private CreateWizardFirstPage firstPage;
     private DescriptorManager descriptorManager;
 
@@ -47,9 +45,9 @@ public class CreateWizard extends Wizard implements INewWizard {
         super();
     }
 
-    public CreateWizard(List<Part> parts, DescriptorManager descriptorManager) {
+    public CreateWizard(ISerializer model, DescriptorManager descriptorManager) {
         this();
-        this.parts = parts;
+        this.model = model;
         this.descriptorManager = descriptorManager;
     }
 
@@ -92,7 +90,7 @@ public class CreateWizard extends Wizard implements INewWizard {
         String name = firstPage.getTemplateName();
 
         // create policy
-        CreatePolicy createPolicy = new CreatePolicy(parts, group, name, descriptorManager);
+        CreatePolicy createPolicy = new CreatePolicy(model, group, name, descriptorManager);
         // run processor
         IWizardProcessor processor = new WizardProcessor();
         processor.add(createPolicy);
index 518e327..c154c24 100644 (file)
@@ -23,6 +23,7 @@
 
 package org.tizen.webuibuilder.pagetemplate.ui.wizards;
 
+import java.util.Collection;
 import java.util.List;
 
 import org.eclipse.jface.viewers.ILabelProvider;
@@ -164,10 +165,7 @@ public class TemplateComposite extends Composite implements ISelectionProvider,
         public Object[] getElements(Object inputElement) {
             Object element = fTemplateViewer.getInput();
             if (element instanceof ITemplateGroup) {
-                List<?> templates = ((ITemplateGroup) element).getTemplates();
-                if (templates == null) {
-                    return null;
-                }
+                Collection<?> templates = ((ITemplateGroup) element).getTemplates();
                 return templates.toArray();
             }
             return null;
@@ -273,11 +271,11 @@ public class TemplateComposite extends Composite implements ISelectionProvider,
                     ITemplateGroup templateGroup = (ITemplateGroup) object;
                     setTemplateGroup(templateGroup);
                     fTemplateViewer.setInput(templateGroup);
-                    List<?> templates = templateGroup.getTemplates();
-                    if (templates == null || templates.size() == 0) {
+                    Collection<?> templates = templateGroup.getTemplates();
+                    if (templates.size() == 0) {
                         return;
                     }
-                    fTemplateViewer.setSelection(new StructuredSelection(templates.get(0)));
+//                    fTemplateViewer.setSelection(new StructuredSelection(templates.);
                 }
             }
         } else if (e.getSource().equals(fTemplateViewer)) {
index 4e9dd97..cf516ce 100644 (file)
@@ -74,7 +74,7 @@ public class DescriptorLoader implements IDescriptorLoader {
     public boolean save(String path) {
         String text = descriptor.getText();
         try {
-            FileUtil.writeTextFile(new File(path), text, null);
+            FileUtil.createTextFile(new File(path), text, null);
         } catch (IOException e) {
             return false;
         }
index 8457281..09f7efb 100644 (file)
@@ -36,7 +36,7 @@ import org.tizen.webuibuilder.snippet.model.ISnippet;
  * @see SnippetManager
  */
 public interface ISnippetManager {
-    public Collection<?> getSnippets();
+    public Collection<ISnippet> getSnippets();
 
     public boolean create(ISnippet snippet);
 
index 09607b2..2189626 100644 (file)
@@ -20,7 +20,6 @@
  *
  */
 
-
 package org.tizen.webuibuilder.snippet.manager;
 
 import java.io.File;
@@ -38,195 +37,213 @@ import org.tizen.webuibuilder.snippet.loader.SnippetLoader;
 import org.tizen.webuibuilder.snippet.model.ISnippet;
 import org.tizen.webuibuilder.utility.ResourceUtil;
 
-
 public class SnippetManager implements ISnippetManager {
-    private Map<Integer, ISnippet> snippets = null;
-    private Logger logger = LoggerFactory.getLogger(getClass());
-
-    public SnippetManager() {
-        super();
-        snippets = new HashMap<Integer, ISnippet>();
-        load();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#getSnippets()
-     */
-    @Override
-    public Collection<ISnippet> getSnippets() {
-        return snippets.values();
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#create(org.tizen.webuibuilder
-     * .feature.snippet.model.ISnippet)
-     */
-    @Override
-    public boolean create(ISnippet snippet) {
-        // Create ID
-        String id = createId();
-        snippet.setId(id);
-
-        // Save
-        String path = getSnippetPath(snippet);
-        SnippetLoader snippetLoader = new SnippetLoader();
-        snippetLoader.snippet = snippet;
-        if (!snippetLoader.save(path)) {
-            return false;
-        }
-        return true;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#remove(org.tizen.webuibuilder
-     * .feature.snippet.model.ISnippet)
-     */
-    @Override
-    public boolean remove(ISnippet snippet) {
-        String path = getSnippetPath(snippet);
-        File file = new File(path);
-        if (!FileUtil.recursiveDelete(file)) {
-            return false;
-        }
-        return true;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see
-     * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#rename(org.tizen.webuibuilder
-     * .feature.snippet.model.ISnippet, java.lang.String)
-     */
-    @Override
-    public boolean rename(ISnippet snippet, String name) {
-        // Remove oldName
-        if (!remove(snippet)) {
-            return false;
-        }
-
-        // Rename
-        snippet.setName(name);
-
-        // Save
-        String path = getSnippetPath(snippet);
-        SnippetLoader snippetLoader = new SnippetLoader();
-        snippetLoader.snippet = snippet;
-        if (!snippetLoader.save(path)) {
-            return false;
-        }
-        return true;
-    }
-
-    public boolean importSnippet(String path) {
-        SnippetLoader snippetLoader = new SnippetLoader();
-        ISnippet snippet = snippetLoader.load(path);
-        if (snippet == null) { // Load snippet fail
-            return false;
-        }
-        if (!create(snippet)) { // Create snippet fail
-            return false;
-        }
-        return true;
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#importSnippet(org.tizen.
-     * webuibuilder.feature.snippet.model.ISnippet)
-     */
-    @Override
-    public boolean importSnippet(ISnippet snippet) {
-        return create(snippet);
-    }
-
-    /*
-     * (non-Javadoc)
-     * 
-     * @see org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#exportSnippet(org.tizen.
-     * webuibuilder.feature.snippet.model.ISnippet)
-     */
-    @Override
-    public boolean exportSnippet(ISnippet snippet, String path) {
-        // Remove ID
-        snippet.setId("");
-        SnippetLoader snippetLoader = new SnippetLoader();
-        snippetLoader.snippet = snippet;
-        if (!snippetLoader.save(path + File.separator + snippet.getName())) {
-            return false;
-        }
-        return true;
-    }
-
-    private String getDefaultPath() {
-        String path = ResourceUtil.getAbsolutePath(InternalMessages.SNIPPET_FOLDER_PATH);
-        return path;
-    }
-
-    private String getSnippetPath(ISnippet snippet) {
-        String path = getDefaultPath() + File.separator + snippet.getId() + "." + snippet.getName();
-        return path;
-    }
-
-    private void load() {
-        snippets = load(getDefaultPath());
-    }
-
-    private Map<Integer, ISnippet> load(String path) {
-        File folder = new File(path);
-        if (!folder.exists()) {
-            return null;
-        }
-        if (!folder.isDirectory()) {
-            return null;
-        }
-
-        Map<Integer, ISnippet> snippets = new HashMap<Integer, ISnippet>();
-        File[] files = folder.listFiles();
-        for (File file : files) {
-            // snippet directory has file
-            if (!file.isDirectory()) {
-                logger.warn("snippet directory has file");
-                continue;
-            }
-
-            String snippetPath = path + IPath.SEPARATOR + file.getName();
-            ISnippetLoader loader = new SnippetLoader();
-            // snippet load fail
-            ISnippet snippet = loader.load(snippetPath);
-            if (snippet == null) {
-                logger.warn("snippet load fail");
-                continue;
-            }
-
-            // snippet id consistency broken
-            Integer key = Integer.parseInt(snippet.getId());
-            if (snippets.containsKey(key)) {
-                logger.warn("snippet id consistency broken");
-                return null;
-            }
-            snippets.put(key, snippet);
-        }
-        return snippets;
-    }
-
-    protected String createId() {
-        // initialize id
-        Integer id = Integer.valueOf(1);
-        logger.info("id : " + id);
-        while (snippets.containsKey(id)) {
-            id = id + 1;
-        }
-        return id.toString();
-    }
+       private Map<Integer, ISnippet> snippets = null;
+       private Logger logger = LoggerFactory.getLogger(getClass());
+
+       public SnippetManager() {
+               super();
+               snippets = new HashMap<Integer, ISnippet>();
+               load();
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#getSnippets
+        * ()
+        */
+       @Override
+       public Collection<ISnippet> getSnippets() {
+               if (snippets == null) {
+                       return null;
+               }
+
+               return snippets.values();
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#create
+        * (org.tizen.webuibuilder .feature.snippet.model.ISnippet)
+        */
+       @Override
+       public boolean create(ISnippet snippet) {
+               // Create ID
+               String id = createId();
+               snippet.setId(id);
+
+               // Save
+               String path = getSnippetPath(snippet);
+               SnippetLoader snippetLoader = new SnippetLoader();
+               snippetLoader.snippet = snippet;
+               if (!snippetLoader.save(path)) {
+                       return false;
+               }
+               Integer key = getKey(snippet);
+               snippets.put(key, snippet);
+               return true;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#remove
+        * (org.tizen.webuibuilder .feature.snippet.model.ISnippet)
+        */
+       @Override
+       public boolean remove(ISnippet snippet) {
+               String path = getSnippetPath(snippet);
+               File file = new File(path);
+               if (!FileUtil.recursiveDelete(file)) {
+                       return false;
+               }
+               Integer key = getKey(snippet);
+               snippets.remove(key);
+               return true;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#rename
+        * (org.tizen.webuibuilder .feature.snippet.model.ISnippet,
+        * java.lang.String)
+        */
+       @Override
+       public boolean rename(ISnippet snippet, String name) {
+               // exist in collection ?
+               Integer key = getKey(snippet);
+               ISnippet selectedSnippet = snippets.get(key);
+               if (selectedSnippet == null) {
+                       return false;
+               }
+               // Remove old snippet
+               if (!remove(selectedSnippet)) {
+                       return false;
+               }
+               // Rename
+               snippet.setName(name);
+               // Create new snippet
+               if (!create(snippet)) {
+                       return false;
+               }
+               return true;
+       }
+
+       public boolean importSnippet(String path) {
+               SnippetLoader snippetLoader = new SnippetLoader();
+               ISnippet snippet = snippetLoader.load(path);
+               if (snippet == null) { // Load snippet fail
+                       return false;
+               }
+               if (!create(snippet)) { // Create snippet fail
+                       return false;
+               }
+               return true;
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#importSnippet
+        * (org.tizen. webuibuilder.feature.snippet.model.ISnippet)
+        */
+       @Override
+       public boolean importSnippet(ISnippet snippet) {
+               return create(snippet);
+       }
+
+       /*
+        * (non-Javadoc)
+        * 
+        * @see
+        * org.tizen.webuibuilder.feature.snippet.manager.ISnippetManager#exportSnippet
+        * (org.tizen. webuibuilder.feature.snippet.model.ISnippet)
+        */
+       @Override
+       public boolean exportSnippet(ISnippet snippet, String path) {
+               // Remove ID
+               snippet.setId("");
+               SnippetLoader snippetLoader = new SnippetLoader();
+               snippetLoader.snippet = snippet;
+               if (!snippetLoader.save(path + File.separator + snippet.getName())) {
+                       return false;
+               }
+               return true;
+       }
+
+       private String getDefaultPath() {
+               String path = ResourceUtil
+                               .getAbsolutePath(InternalMessages.SNIPPET_FOLDER_PATH);
+               return path;
+       }
+
+       private String getSnippetPath(ISnippet snippet) {
+               String path = getDefaultPath() + File.separator + snippet.getId() + "."
+                               + snippet.getName();
+               return path;
+       }
+
+       private void load() {
+               snippets = load(getDefaultPath());
+       }
+
+       private Map<Integer, ISnippet> load(String path) {
+               File folder = new File(path);
+               if (!folder.exists()) {
+                       return null;
+               }
+               if (!folder.isDirectory()) {
+                       return null;
+               }
+
+               Map<Integer, ISnippet> snippets = new HashMap<Integer, ISnippet>();
+               File[] files = folder.listFiles();
+               for (File file : files) {
+                       // snippet directory has file
+                       if (!file.isDirectory()) {
+                               logger.warn("snippet directory has file");
+                               continue;
+                       }
+
+                       String snippetPath = path + IPath.SEPARATOR + file.getName();
+                       ISnippetLoader loader = new SnippetLoader();
+                       // snippet load fail
+                       ISnippet snippet = loader.load(snippetPath);
+                       if (snippet == null) {
+                               logger.warn("snippet load fail");
+                               continue;
+                       }
+
+                       // snippet id consistency broken
+                       Integer key = getKey(snippet);
+                       if (snippets.containsKey(key)) {
+                               logger.warn("snippet id consistency broken");
+                               return null;
+                       }
+                       snippets.put(key, snippet);
+               }
+               return snippets;
+       }
+
+       protected Integer getKey(ISnippet snippet) {
+               return Integer.parseInt(snippet.getId());
+       }
+
+       protected String createId() {
+               // initialize id
+               Integer id = Integer.valueOf(1);
+               while (snippets.containsKey(id)) {
+                       id = id + 1;
+               }
+               return id.toString();
+       }
 
 }
index 543efc6..0965189 100644 (file)
@@ -44,12 +44,12 @@ public class CreatePolicy implements IWizardPolicy {
     private String description = null;
     private String imagePath = null;
 
-    @SuppressWarnings("unused")
     private CreatePolicy() {
         super();
     }
 
     public CreatePolicy(Object model, String name, String description, String imagePath) {
+        this();
         this.model = model;
         this.name = name;
         this.description = description;
@@ -76,9 +76,9 @@ public class CreatePolicy implements IWizardPolicy {
         snippet.setImageDescriptor(imageDescriptor);
         // Create Descriptor
         IDescriptor descriptor = new Descriptor();
-        if (!(model instanceof Part)) {
-            return false;
-        }
+//        if (!(model instanceof Part)) {
+//            return false;
+//        }
         // TODO : implementation Model -> String serialization
 //        Converter converter = new Converter();
 //        String text = converter.convert(parts.get(0));
index 2980618..3ff347d 100644 (file)
@@ -81,7 +81,7 @@ public class NavigatorIPageListener implements IAppListener {
         if (viewer == null) {
             return;
         }
-        getView().refresh();
+        viewer.refresh();
     }
 
     @Override
@@ -90,7 +90,7 @@ public class NavigatorIPageListener implements IAppListener {
         if (viewer == null) {
             return;
         }
-        getView().refresh();
+        viewer.refresh();
     }
 
 }
index bb6b536..82b160c 100644 (file)
@@ -172,7 +172,9 @@ public class CategoryComposite extends Composite {
         }
         
         briefLabel = createBriefLabel();
-        briefLabel.setText(msg);
+        if (briefLabel != null) {
+               briefLabel.setText(msg);        
+        }
         expandableComposite.layout();
 
         Logger logger = LoggerFactory.getLogger(CategoryComposite.class);
@@ -230,7 +232,10 @@ public class CategoryComposite extends Composite {
             briefLabel = null;
         }
         briefLabel = createBriefLabel();
-        briefLabel.setText(msg);
+        if (briefLabel != null) {
+               briefLabel.setText(msg);        
+        }
+        
         expandableComposite.layout();
     }
 
index 7e2537f..8c208bf 100644 (file)
@@ -32,12 +32,17 @@ import org.eclipse.gef.commands.Command;
 import org.eclipse.gef.commands.CommandStack;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.custom.CTabFolder;
+import org.eclipse.swt.events.MouseEvent;
+import org.eclipse.swt.events.MouseListener;
+import org.eclipse.swt.events.MouseTrackListener;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.events.SelectionListener;
 import org.eclipse.swt.layout.GridData;
 import org.eclipse.swt.layout.GridLayout;
 import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Control;
+import org.eclipse.swt.widgets.Label;
 import org.eclipse.swt.widgets.TableItem;
 import org.eclipse.ui.forms.events.ExpansionAdapter;
 import org.eclipse.ui.forms.events.ExpansionEvent;
@@ -78,6 +83,7 @@ import org.tizen.webuibuilder.ui.views.properties.method.MetricsMethod;
 import org.tizen.webuibuilder.ui.views.properties.method.MultiSelectMethod;
 import org.tizen.webuibuilder.ui.views.properties.method.NoContentMethod;
 import org.tizen.webuibuilder.ui.views.properties.method.TextStyleMethod;
+import org.tizen.webuibuilder.utility.ResourceManager;
 
 
 /**
@@ -164,6 +170,71 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener
         createDesignerContents();
         includeComposite(noContent);
     }
+    
+//    @Override
+//    protected Control createExtendControl(Composite parent) {
+//        final Label label = new Label(parent, SWT.NONE);
+//        label.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR,
+//                "animator_toolbar_repeat_hover.png"));
+//        label.setToolTipText("Reset");
+//        label.addMouseListener(new MouseListener() {
+//            
+//            @Override
+//            public void mouseUp(MouseEvent e) {
+//                label.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR,
+//                        "animator_toolbar_repeat_hover.png"));
+//                resetCurrentSelector();
+//                
+//            }
+//            
+//            @Override
+//            public void mouseDown(MouseEvent e) {
+//                label.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR,
+//                        "animator_toolbar_repeat_selected_normal.png"));
+//                
+//            }
+//            
+//            @Override
+//            public void mouseDoubleClick(MouseEvent e) {
+//                // TODO Auto-generated method stub
+//                
+//            }
+//        });
+//        
+//        label.addMouseTrackListener(new MouseTrackListener() {
+//            
+//            @Override
+//            public void mouseHover(MouseEvent e) {
+//                // TODO Auto-generated method stub
+//                
+//            }
+//            
+//            @Override
+//            public void mouseExit(MouseEvent e) {
+//                label.setImage(ResourceManager.getImage(BuilderConstants.ICON_DIR,
+//                        "animator_toolbar_repeat_hover.png"));
+//                
+//            }
+//            
+//            @Override
+//            public void mouseEnter(MouseEvent e) {
+//                // TODO Auto-generated method stub
+//                
+//            }
+//        });
+//        return label;
+//    }
+//    
+//    private void resetCurrentSelector() {
+//        // reset style
+//        if (currentSelector == null) {
+//            return;
+//        }
+//        String selectorName = currentSelector.getSelectorName();
+//        cssDelegater.removeCssSelector(currentSelector);
+//        
+//        setSelector(selectorName);
+//    }
 
     private void createNoContent() {
         if (noContent == null || noContent.isDisposed()) {
@@ -381,14 +452,12 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener
 
         String selectorName = model.getDefaultSelectorName();
         if (selectorName != null) {
-            setSelector(selectorName);
-            
             /* Set css selector to CssCategory.
              * PropertiesMode.DESIGN, only */
             if (cssCategory != null && !cssCategory.isDisposed()) {
                 cssCategory.setDeafultSelector(selectorName, model.getIdPropertyValue());    
             }
-                
+            setSelector(selectorName);
         }
         
     }
@@ -413,6 +482,10 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener
         }
         
         setInfoText(selectorName);
+        
+//        if (cssCategory != null && !cssCategory.isDisposed()) {
+//            cssCategory.setSelector(selectorName);    
+//        }
     }
 
     /**
@@ -563,10 +636,19 @@ public class CssStyleTab extends PropertiesTabItem implements IPageDataListener
      *            whether the {@link CustomCSSMethod} is refresh
      */
     public void refreshManagedMethods(String key, String value, boolean refreshCustomCss) {
-        metrics.refreshValue(key, value);
-        clip.refreshValue(key, value);
-        textStyle.refreshValue(key, value);
-        if (refreshCustomCss) {
+       if (metrics != null) {
+               metrics.refreshValue(key, value);       
+       }
+        
+       if (clip != null) {
+               clip.refreshValue(key, value);  
+       }
+        
+       if (textStyle != null) {
+               textStyle.refreshValue(key, value);     
+       }
+        
+        if (refreshCustomCss && customCss != null) {
             customCss.refreshValue(key, value);
         }
     }
index 83752e4..ce35e1e 100644 (file)
@@ -31,6 +31,7 @@ import org.eclipse.core.resources.IFile;
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.swt.widgets.Display;
+import org.tizen.common.util.Assert;
 import org.tizen.webuibuilder.BuilderConstants;
 import org.tizen.webuibuilder.animator.AnimatorConstants;
 import org.tizen.webuibuilder.animator.model.io.AnimatorFileWriter;
@@ -136,9 +137,7 @@ public class PageManager {
      * @return
      */
     public static PageFileData readPageFileData(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());
         PageFileData pageFileData =
@@ -160,13 +159,11 @@ public class PageManager {
      * @return
      */
     private static PageData createPageData(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         PageFileData pageFileData = readPageFileData(res);
-        if(pageFileData == null) {
-               return null;
+        if (pageFileData == null) {
+            return null;
         }
         Page page = createPage(pageFileData.getName(0));
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());
@@ -268,9 +265,7 @@ public class PageManager {
      * @throws IOException
      */
     public static void create(IResource res, Page page) throws CoreException, IOException {
-        if (!isVaild(res)) {
-            return;
-        }
+        Assert.isTrue(isVaild(res));
 
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());
         AppManagerForAppXML appManager =
@@ -296,9 +291,7 @@ public class PageManager {
      * @throws IOException
      */
     public static void add(IResource res) throws CoreException, IOException {
-        if (!isVaild(res)) {
-            return;
-        }
+        Assert.isTrue(isVaild(res));
 
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());
         AppManager appManager = projectManager.getDefaultAppManager();
@@ -309,8 +302,8 @@ public class PageManager {
         // If not imported file
         if (pageData == null) {
             pageData = createPageData(res);
-            if(pageData == null){
-               return;
+            if (pageData == null) {
+                return;
             }
         }
         appManager.addPage(pageData);
@@ -321,7 +314,7 @@ public class PageManager {
         if (jsFile != null) {
             ResourceManager.copy(BuilderMessages.NEWTEMPLATEFILE_JS, jsFile);
         }
-        
+
         IFile cssFile = getCssFile(res);
         if (cssFile != null) {
             ResourceManager.copy(BuilderMessages.NEWTEMPLATEFILE_CSS, cssFile);
@@ -330,9 +323,7 @@ public class PageManager {
     }
 
     public static void remove(IResource res, PageData pageData) throws CoreException, IOException {
-        if (!isVaild(res)) {
-            return;
-        }
+        Assert.isTrue(isVaild(res));
 
         WebUIBuilderBuilder.clean(res);
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());
@@ -346,9 +337,7 @@ public class PageManager {
 
     public static void remove(IResource res, PageData pageData, int style) throws CoreException,
             IOException {
-        if (!isVaild(res)) {
-            return;
-        }
+        Assert.isTrue(isVaild(res));
 
         WebUIBuilderBuilder.clean(res, style);
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());
@@ -432,43 +421,33 @@ public class PageManager {
     }
 
     public static IFile getHtmlFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         PageData pageData = getPageData(res);
         return res.getProject().getFile(pageData.getHtmlPath());
     }
 
     public static IFile getManagedJsFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         PageData pageData = getPageData(res);
         return res.getProject().getFile(pageData.getManagedJsPath());
     }
 
     public static IFile getJsFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         return res.getProject().getFile(getPageData(res).getJsPath());
     }
 
     public static IFile getCssFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         return res.getProject().getFile(getPageData(res).getCssPath());
     }
 
     public static IFile getManagedCssFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         return res.getProject().getFile(getPageData(res).getManagedCssPath());
     }
@@ -480,9 +459,7 @@ public class PageManager {
      * @return
      */
     public static IFile getAnimatorManagedJsFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         return res.getProject().getFile(getPageData(res).getAnimatorManagedJsPath());
     }
@@ -494,17 +471,13 @@ public class PageManager {
      * @return
      */
     public static IFile getAnimatorManagedCssFile(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         return res.getProject().getFile(getPageData(res).getAnimatorManagedCssPath());
     }
 
     public static PageData getPageData(IResource res) {
-        if (!isVaild(res)) {
-            return null;
-        }
+        Assert.isTrue(isVaild(res));
 
         String pageFilePath = res.getProjectRelativePath().toString();
         ProjectManager projectManager = ProjectManager.getProjectManager(res.getProject());