plugins/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/NewFlickrApplicationWizardPage.java
changeset 474 e2f461f0a9e0
parent 470 d4809db37847
--- a/plugins/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/NewFlickrApplicationWizardPage.java	Mon Aug 23 15:08:34 2010 -0700
+++ b/plugins/org.symbian.tools.wrttools/src/org/symbian/tools/wrttools/wizards/NewFlickrApplicationWizardPage.java	Mon Aug 23 17:20:11 2010 -0700
@@ -18,58 +18,11 @@
  */
 package org.symbian.tools.wrttools.wizards;
 
-import java.text.MessageFormat;
-import java.util.Collection;
-import java.util.LinkedList;
+import org.eclipse.swt.widgets.Composite;
 
-import org.eclipse.core.databinding.Binding;
-import org.eclipse.core.databinding.DataBindingContext;
-import org.eclipse.core.databinding.UpdateValueStrategy;
-import org.eclipse.core.databinding.observable.value.IObservableValue;
-import org.eclipse.core.databinding.validation.IValidator;
-import org.eclipse.core.runtime.IStatus;
-import org.eclipse.core.runtime.Status;
-import org.eclipse.jface.databinding.swt.ISWTObservableValue;
-import org.eclipse.jface.databinding.swt.SWTObservables;
-import org.eclipse.jface.databinding.wizard.WizardPageSupport;
-import org.eclipse.jface.wizard.WizardPage;
-import org.eclipse.swt.SWT;
-import org.eclipse.swt.layout.GridData;
-import org.eclipse.swt.layout.GridLayout;
-import org.eclipse.swt.widgets.Button;
-import org.eclipse.swt.widgets.Composite;
-import org.eclipse.swt.widgets.Label;
-import org.eclipse.swt.widgets.Text;
-import org.symbian.tools.tmw.ui.project.INewApplicationWizardPage;
-import org.symbian.tools.tmw.ui.project.IProjectTemplate;
-import org.symbian.tools.tmw.ui.project.IProjectTemplateContext;
-import org.symbian.tools.wrttools.Activator;
-import org.symbian.tools.wrttools.util.CompoundValidator;
-
-public class NewFlickrApplicationWizardPage extends WizardPage implements INewApplicationWizardPage {
-    private static class NonEmptyStringValidator implements IValidator {
-        private final String propertyName;
-
-        public NonEmptyStringValidator(String propertyName) {
-            this.propertyName = propertyName;
-        }
-
-        public IStatus validate(Object value) {
-            if (value == null || value.toString().trim().length() == 0) {
-                return new Status(IStatus.ERROR, Activator.PLUGIN_ID, MessageFormat.format("Field {0} is empty",
-                        propertyName));
-            }
-            return Status.OK_STATUS;
-        }
-    }
-    private DataBindingContext bindingContext;
-    private final Collection<Binding> bindings = new LinkedList<Binding>();
-    private IProjectTemplateContext context;
-
+public class NewFlickrApplicationWizardPage extends NewWrtAppTemplatePage {
     public NewFlickrApplicationWizardPage() {
-        super("FlickrFiles");
-        setTitle("Application Files");
-        setDescription("Specify application file names");
+        super("FlickrFiles", "Application Files", "Specify application file names");
     }
 
     protected void addTemplateControls(Composite root) {
@@ -79,64 +32,4 @@
         createLabel(root, "");
     }
 
-    public void createControl(Composite parent) {
-        Composite root = new Composite(parent, SWT.NONE);
-        WizardPageSupport.create(this, bindingContext);
-        root.setLayout(new GridLayout(2, false));
-
-        createLabel(root, "Name of main HTML:");
-        createText(root, IProjectTemplate.CommonKeys.main_html, "HTML file name", bindingContext);
-        createLabel(root, "");
-        createLabel(root, "");
-        createLabel(root, "Name of CSS file:");
-        createText(root, IProjectTemplate.CommonKeys.main_css, "CSS file name", bindingContext);
-        createLabel(root, "");
-        createLabel(root, "");
-        createLabel(root, "Name of JavaScript file:");
-        createText(root, IProjectTemplate.CommonKeys.main_js, "JavaScript file name", bindingContext);
-
-        createLabel(root, "");
-        Button homeScreen = new Button(root, SWT.CHECK);
-        homeScreen.setText("Enable HomeScreen");
-
-        createLabel(root, "");
-        createLabel(root, "");
-
-        IObservableValue view = SWTObservables.observeSelection(homeScreen);
-        IObservableValue model = context.getParameterObservable(WizardContext.HOME_SCREEN);
-        bindingContext.bindValue(view, model);
-
-        addTemplateControls(root);
-
-        setControl(root);
-    }
-
-    protected void createLabel(Composite root, String text) {
-        Label label = new Label(root, SWT.NONE);
-        label.setText(text);
-    }
-
-    protected Text createText(Composite root, String property, String propertyName, DataBindingContext bindingContext,
-            IValidator... validators) {
-        Text text = new Text(root, SWT.BORDER);
-        text.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-        ISWTObservableValue view = SWTObservables.observeText(text, SWT.Modify);
-        UpdateValueStrategy strategy = new UpdateValueStrategy(UpdateValueStrategy.POLICY_UPDATE);
-        NonEmptyStringValidator validator = new NonEmptyStringValidator(propertyName);
-        strategy.setBeforeSetValidator(validators.length == 0 ? validator
-                : new CompoundValidator(validator, validators));
-        bindings.add(bindingContext.bindValue(view, context.getParameterObservable(property), strategy, null));
-        return text;
-    }
-
-    public void init(IProjectTemplateContext context, DataBindingContext bindingContext) {
-        this.context = context;
-        this.bindingContext = bindingContext;
-    }
-
-    public void remove() {
-        for (Binding binding : bindings) {
-            bindingContext.removeBinding(binding);
-        }
-    }
 }