RTSDK : Apply OCF extension handling logic
authorbdragon.park <bdragon.park@samsung.com>
Tue, 22 Aug 2017 08:29:24 +0000 (17:29 +0900)
committerbdragon.park <bdragon.park@samsung.com>
Tue, 22 Aug 2017 08:29:24 +0000 (17:29 +0900)
Signed-off-by: bdragon.park <bdragon.park@samsung.com>
rt-ide/tizen.rt.product.plugin/META-INF/MANIFEST.MF
rt-ide/tizen.rt.product.plugin/src/org/tizen/rt/ide/wizards/NewRtProjectWizard.java
rt-ide/tizen.rt.product.plugin/src/org/tizen/rt/ide/wizards/NewRtProjectWizardPage2.java

index 30d6b8d..44d7bb1 100644 (file)
@@ -30,7 +30,8 @@ Require-Bundle: org.eclipse.ui,
  org.eclipse.debug.ui,
  org.eclipse.cdt.debug.core,
  org.eclipse.cdt.dsf.gdb,
- org.tizen.rt.product.meta
+ org.tizen.rt.product.meta,
+ org.tizen.ocf.core
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ActivationPolicy: lazy
 Bundle-ClassPath: lib/slf4j-api-1.6.4.jar,
index e829f36..dde286f 100644 (file)
@@ -44,6 +44,7 @@ import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IConfigurationElement;
 import org.eclipse.core.runtime.IExecutableExtension;
 import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.SubProgressMonitor;
 import org.eclipse.jface.dialogs.MessageDialog;
 import org.eclipse.jface.operation.IRunnableWithProgress;
 import org.eclipse.jface.resource.ImageDescriptor;
@@ -58,6 +59,9 @@ import org.eclipse.ui.internal.WorkbenchImages;
 import org.eclipse.ui.wizards.newresource.BasicNewResourceWizard;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.tizen.ocf.core.OcfCorePlugin;
+import org.tizen.ocf.core.ui.wizard.OcfDeviceWizardPage;
+import org.tizen.ocf.core.ui.wizard.OcfEntryWizardPage;
 import org.tizen.rt.ide.Messages;
 import org.tizen.rt.ide.util.ZipUtil;
 import org.tizen.rt.product.RtProjectNature;
@@ -67,6 +71,8 @@ public class NewRtProjectWizard extends BasicNewResourceWizard implements IExecu
     private final Logger logger = LoggerFactory.getLogger(NewRtProjectWizard.class);
     private NewRtProjectWizardPage page;
     private NewRtProjectWizardPage2 boardPage;
+    private OcfEntryWizardPage ocfEntryPage;
+    private OcfDeviceWizardPage devicePage;
     private ISelection selection;
     private IProject _newProject;
 
@@ -94,9 +100,34 @@ public class NewRtProjectWizard extends BasicNewResourceWizard implements IExecu
         boardPage = new NewRtProjectWizardPage2(selection);
         addPage(boardPage);
 
+        // Add OCF pages for working with IoT cloud service
+        addOcfPages();
+
         page.setWizard(this);
     }
 
+    private void addOcfPages() {
+        if (OcfCorePlugin.isOcfExtensionExist()) {
+            ocfEntryPage = new OcfEntryWizardPage();
+            addPage(ocfEntryPage);
+            devicePage = new OcfDeviceWizardPage(selection);
+            addPage(devicePage);
+        }
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.jface.wizard.Wizard#canFinish()
+     */
+    @Override
+    public boolean canFinish() {
+        if (OcfCorePlugin.isOcfExtensionExist()) {
+            return ocfEntryPage.isPageComplete() && devicePage.isPageComplete();
+        } else {
+            return super.canFinish();
+        }
+    }
+
     /**
      * This method is called when 'Finish' button is pressed in the wizard. We will create an operation and run it using wizard as execution context.
      */
@@ -212,6 +243,13 @@ public class NewRtProjectWizard extends BasicNewResourceWizard implements IExecu
         _newProject.refreshLocal(IResource.DEPTH_INFINITE, monitor);
 
         monitor.worked(1);
+
+        // post processing : perform OCF pages work
+        if (OcfCorePlugin.isOcfExtensionExist()) {
+            IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 10);
+            devicePage.performFinish(_newProject, subMonitor);
+        }
+        monitor.worked(1);
     }
 
     private IProject createNewProject(IProject newProjectHandle, URI location, IProgressMonitor monitor) {
index 63510be..1336d7f 100644 (file)
@@ -290,7 +290,16 @@ public class NewRtProjectWizardPage2 extends WizardPage {
     }
 
     protected boolean validatePage() {
-        return (table.getSelectionIndex() >= 0);
+        return (table.getSelectionIndex() >= 0 && getNextPage() == null);
+    }
+
+    /*
+     * (non-Javadoc)
+     * @see org.eclipse.jface.wizard.WizardPage#canFlipToNextPage()
+     */
+    @Override
+    public boolean canFlipToNextPage() {
+        return table.getSelectionIndex() >= 0 && getNextPage() != null;
     }
 
     /**