Package com.onpositive.gae.baseviewer

Source Code of com.onpositive.gae.baseviewer.ImportExportDialogs

package com.onpositive.gae.baseviewer;

import java.io.File;
import java.util.ArrayList;
import java.util.Iterator;

import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Platform;
import org.eclipse.jface.viewers.TableViewer;
import org.eclipse.jface.wizard.IWizardPage;
import org.eclipse.jface.wizard.WizardDialog;
import org.eclipse.jface.wizard.WizardPage;
import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.DirectoryDialog;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.FileDialog;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.ui.plugin.AbstractUIPlugin;

import com.onpositive.commons.elements.AbstractUIElement;
import com.onpositive.commons.elements.Container;
import com.onpositive.commons.elements.SWTEventListener;
import com.onpositive.commons.ui.appearance.HorizontalLayouter;
import com.onpositive.commons.ui.appearance.OneElementOnLineLayouter;
import com.onpositive.commons.ui.dialogs.BindedWizardPage;
import com.onpositive.commons.ui.dialogs.FlowWizard;
import com.onpositive.commons.ui.dialogs.INextPageProvider;
import com.onpositive.commons.ui.tableeditor.Field;
import com.onpositive.semantic.model.api.property.java.annotations.Caption;
import com.onpositive.semantic.model.binding.Binding;
import com.onpositive.semantic.model.realm.IFactory;
import com.onpositive.semantic.model.realm.Realm;
import com.onpositive.semantic.model.ui.property.editors.ButtonSelector;
import com.onpositive.semantic.model.ui.property.editors.CompositeEditor;
import com.onpositive.semantic.model.ui.property.editors.DisposeBindingListener;
import com.onpositive.semantic.model.ui.property.editors.OneLineTextElement;
import com.onpositive.semantic.model.ui.property.editors.structured.ListEnumeratedValueSelector;

public class ImportExportDialogs {

  /*
   * public static class BulkExportData {
   *
   * @Caption("From CSV file as comma separated values") boolean asCsv = true;
   *
   * @Caption("From XML File") boolean asXML;
   *
   * @Caption("Import from:") String outPut;
   *
   * }
   *
   * public static class BulkImportData {
   *
   * @Caption("Comma separated values") boolean asCsv = true;
   *
   * @Caption("XML File") boolean asXML;
   *
   * @Caption("Export to:") String outPut; }
   */
  public static class ExportData {
    @Caption("From CSV file as comma separated values")
    boolean asCsv = true;
    @Caption("From XML File")
    boolean asXML;
    @Caption("From JDBC Data store")
    boolean asBinary;

    @Caption("Export from several files")
    boolean multiExport;

    @Caption("Import from:")
    String outPut;

    /**
     * JDBC connection string
     */
    @Caption("JDBC connection URL")
    String jdbcConnection;

    /**
     * JDBC Driver Class Name
     */
    @Caption("JDBC Driver class name:")
    String jdbcDriverClassName;

    /**
     * ClassPath
     */
    ArrayList<String> jdbcDriverClassPath = new ArrayList<String>();

    ArrayList<String> sourcesForExport;

    @Caption("Database password")
    String databaseLogin;

    @Caption("Database login")
    String databasePasswd;
  }

  public static class ImportData {
    @Caption("Comma separated values")
    boolean asCsv = true;
    @Caption("XML File")
    boolean asXML;
    @Caption("JDBC Data store")
    boolean asBinary;

    @Caption("All Entities with current kind")
    boolean allEntitiesOf = true;
    @Caption("Entities with current kind which are accepted to current filters")
    boolean selectedEntitiesOf;
    @Caption("Entities of several kinds")
    boolean entitiesOfSelectedKinds;
    @Caption("Export all properties")
    boolean filterColumns = true;

    /**
     * properties to export
     */
    ArrayList<Field> columns;

    /**
     * kinds to export
     */
    ArrayList<String> kinds;

    /**
     * outPutFile
     */
    @Caption("Export to:")
    String outPut;

    /**
     * JDBC connection string
     */
    @Caption("JDBC connection URL")
    String jdbcConnection;

    /**
     * JDBC Driver Class Name
     */
    @Caption("JDBC Driver class name:")
    String jdbcDriverClassName;

    /**
     * ClassPath
     */
    ArrayList<String> jdbcDriverClassPath = new ArrayList<String>();

    @Caption("Database password")
    String databaseLogin;

    @Caption("Database login")
    String databasePasswd;

  }

  public static String[] getKnownKinds(BaseDataFacade dacade) {
    try {
      return AnnotationsStorage.getKnownKinds(dacade.getProject()
          .getProject());
    } catch (CoreException e) {
      return new String[] {};
    }
  }

  static WizardPage getKindsSelectingPage(Binding bndr, BaseDataFacade facade) {
    CompositeEditor r = new CompositeEditor(bndr);
    ListEnumeratedValueSelector<String> mr = new ListEnumeratedValueSelector<String>();
    Binding binding = bndr.getBinding("columns");
    Realm realm = new Realm(getKnownKinds(facade));
    binding.setRealm(realm);
    mr.setBinding(binding);
    mr.setAsCheckBox(true);
    r.add(mr);
    BindedWizardPage q = new BindedWizardPage(r);
    return q;
  }

  public static ExportData showBulkExportDialog(
      final BaseDataFacade facade) {
    final ExportData t = new ExportData();
    final Binding bndr = new Binding(t);

    bndr.setName("Bulk Export to data store");
    bndr.setDescription("Please select settings for this export");
    bndr.setAutoCommit(true);

    CompositeEditor optionPage = createOptionsPageForBulkExport(bndr);
    CompositeEditor outPutFolderPage = createFolderPage(bndr);

    FlowWizard newWizard = new FlowWizard(bndr, "Export") {

      public boolean canFinish() {
        // ExportData dat = (ExportData) bndr.getObject();
        if (t.outPut != null && t.outPut.length() != 0) {
          return true;
        }
        return false;
      }
     
     

      public void onChanged() {
        getContainer().updateButtons();
      }
    };

    final IWizardPage oPage = newWizard.addPage("options", optionPage);
    oPage.setTitle("Export data to data store");
    final IWizardPage folderPage = newWizard.addPage("folder",
        outPutFolderPage);

    INextPageProvider provider = new INextPageProvider() {

      public IWizardPage getNextPage(IWizardPage cureIWizardPage) {
        if (cureIWizardPage == oPage) {
          if (t.asCsv || t.asXML) {
            return folderPage;
          }
        }
        return folderPage;
      }
    };
    newWizard.setNextPageProvider(provider);
    WizardDialog dl = new WizardDialog(Display.getCurrent()
        .getActiveShell(), newWizard);
    Image createImage = AbstractUIPlugin.imageDescriptorFromPlugin(
        Activator.PLUGIN_ID, "/icons/importpref_wiz.png").createImage();
    dl.setTitleImage(createImage);
    int open = dl.open();
    createImage.dispose();

    if (open == WizardDialog.OK) {
      return t;
    } else {
      return null;
    }
  }

  public static ExportData showExportDialog(final BaseDataFacade facade) {
    final ExportData t = new ExportData();

    final Binding bndr = new Binding(t);
    bndr.setName("Export data to data store");
    bndr.setDescription("Please select settings for this export");
    bndr.setAutoCommit(true);
    CompositeEditor optionsPage = createOptionsPageForExport(bndr);
    CompositeEditor outPutFilePage = createFilePageForExport(bndr);
    CompositeEditor outPutFolderPage = createDirectoryPageForExport(bndr);
    CompositeEditor jdbcDataPage = createJDBCPage(bndr);

    FlowWizard newWizard = new FlowWizard(bndr, "Export") {

      public boolean canFinish() {
        // ExportData dat = (ExportData) bndr.getObject();
        if (t.outPut != null && t.outPut.length() != 0) {
          return true;
        }
        if (t.asBinary && t.jdbcConnection != null
            && t.jdbcConnection.length() != 0
            && t.jdbcDriverClassName != null
            && t.jdbcDriverClassName.length() != 0
            && t.jdbcDriverClassPath != null
            && t.jdbcDriverClassPath.size() != 0) {
          return true;
        }
        return false;
      }

      public void onChanged() {
        getContainer().updateButtons();
      }
    };
    final IWizardPage oPage = newWizard.addPage("options", optionsPage);
    oPage.setTitle("Export data to data store");
    final IWizardPage folderPage = newWizard.addPage("folder",
        outPutFolderPage);

    final IWizardPage filePage = newWizard.addPage("file", outPutFilePage);
    final IWizardPage jdbcPage = newWizard.addPage("file", jdbcDataPage);

    INextPageProvider provider = new INextPageProvider() {

      public IWizardPage getNextPage(IWizardPage cureIWizardPage) {
        if (cureIWizardPage == oPage) {
          if (t.multiExport && !t.asBinary) {
            return folderPage;
          }
          if (t.asCsv || t.asXML) {
            return filePage;
          } else if (t.asBinary) {
            return jdbcPage;
          }
        }
        return filePage;
      }
    };
    newWizard.setNextPageProvider(provider);
    WizardDialog dl = new WizardDialog(Display.getCurrent()
        .getActiveShell(), newWizard);
    Image createImage = AbstractUIPlugin.imageDescriptorFromPlugin(
        Activator.PLUGIN_ID, "/icons/importpref_wiz.png").createImage();
    dl.setTitleImage(createImage);
    int open = dl.open();
    createImage.dispose();

    if (open == WizardDialog.OK) {
      return t;
    } else {
      return null;
    }
  }

  public static ImportData showBulkImportDialog(
      final BaseDataFacade facade) {

    final ImportData t = new ImportData();

    final Binding bndr = new Binding(t);
    bndr.setName("Import data from data store");
    bndr.setDescription("Please select settings for this import");
    bndr.setAutoCommit(true);

    CompositeEditor optionPage = createOptionsPageForBulkImport(bndr);
    CompositeEditor outPutFolderPage = createFolderPage(bndr);

    DisposeBindingListener.linkBindingLifeCycle(bndr, optionPage);
    FlowWizard newWizard = new FlowWizard(bndr, "Import") {

      public boolean canFinish() {
        // ExportData dat = (ExportData) bndr.getObject();

        if (t.outPut != null && t.outPut.length() != 0) {
          return true;
        }

        return false;
      }

      public void onChanged() {
        getContainer().updateButtons();
      }
    };
    final IWizardPage oPage = newWizard.addPage("options", optionPage);
    final IWizardPage folderPage = newWizard.addPage("folder",
        outPutFolderPage);

    INextPageProvider provider = new INextPageProvider() {

      public IWizardPage getNextPage(IWizardPage cureIWizardPage) {
        if (cureIWizardPage == oPage) {

          return folderPage;
        }
        return folderPage;
      }
    };
    newWizard.setNextPageProvider(provider);
    WizardDialog dl = new WizardDialog(Display.getCurrent()
        .getActiveShell(), newWizard);
    Image createImage = AbstractUIPlugin.imageDescriptorFromPlugin(
        Activator.PLUGIN_ID, "/icons/importpref_wiz.png").createImage();
    dl.setTitleImage(createImage);
    int open = dl.open();
    createImage.dispose();

    if (open == WizardDialog.OK) {
      return t;
    } else {
      return null;
    }
  }

  public static ImportData showImportDialog(final BaseDataFacade facade) {
    final ImportData t = new ImportData();

    final Binding bndr = new Binding(t);
    bndr.setName("Import data from data store");
    bndr.setDescription("Please select settings for this import");
    bndr.setAutoCommit(true);
    CompositeEditor optionsPage = createOptionsPage(bndr);
    CompositeEditor columnsPage = createColumnsPage(facade, bndr);
    CompositeEditor kindsPage = createKindsPage(facade, bndr);
    CompositeEditor outPutFilePage = createFilePage(bndr);
    CompositeEditor outPutFolderPage = createDirectoryPage(bndr);
    CompositeEditor jdbcPage = createJDBCPage(bndr);
    DisposeBindingListener.linkBindingLifeCycle(bndr, optionsPage);
    FlowWizard newWizard = new FlowWizard(bndr, "Import") {

      public boolean canFinish() {
        // ExportData dat = (ExportData) bndr.getObject();

        if (t.outPut != null && t.outPut.length() != 0) {
          return true;
        }
        if (t.asBinary && t.jdbcConnection != null
            && t.jdbcConnection.length() != 0
            && t.jdbcDriverClassName != null
            && t.jdbcDriverClassName.length() != 0
            && t.jdbcDriverClassPath != null
            && t.jdbcDriverClassPath.size() != 0) {
          return true;
        }

        return false;
      }

      public void onChanged() {
        getContainer().updateButtons();
      }
    };
    final IWizardPage oPage = newWizard.addPage("options", optionsPage);
    // oPage.setTitle("Options");
    final IWizardPage cPage = newWizard.addPage("columns", columnsPage);
    // cPage.setTitle("Columns");
    final IWizardPage kPage = newWizard.addPage("kinds", kindsPage);
    // cPage.setTitle("Kinds");
    final IWizardPage filePage = newWizard.addPage("file", outPutFilePage);
    // cPage.setTitle("Kinds");
    final IWizardPage folderPage = newWizard.addPage("folder",
        outPutFolderPage);
    // cPage.setTitle("Kinds");
    final IWizardPage jPage = newWizard.addPage("file", jdbcPage);
    // cPage.setTitle("Kinds");
    INextPageProvider provider = new INextPageProvider() {

      public IWizardPage getNextPage(IWizardPage cureIWizardPage) {
        if (cureIWizardPage == oPage) {
          if (t.asCsv) {
            if (!t.filterColumns) {
              return cPage;
            }
          }
          if (t.entitiesOfSelectedKinds) {
            return kPage;
          }

        }
        if (cureIWizardPage == kPage && !t.asBinary) {
          return folderPage;
        }
        if (t.asBinary) {
          return jPage;
        }
        if (t.entitiesOfSelectedKinds) {
          return folderPage;
        }
        return filePage;
      }
    };
    newWizard.setNextPageProvider(provider);
    WizardDialog dl = new WizardDialog(Display.getCurrent()
        .getActiveShell(), newWizard);
    Image createImage = AbstractUIPlugin.imageDescriptorFromPlugin(
        Activator.PLUGIN_ID, "/icons/importpref_wiz.png").createImage();
    dl.setTitleImage(createImage);
    int open = dl.open();
    createImage.dispose();

    if (open == WizardDialog.OK) {
      return t;
    } else {
      return null;
    }
  }

  private static CompositeEditor createFilePageForExport(final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    OneLineTextElement<String> element = new OneLineTextElement<String>(
        bndr.getBinding("outPut"));
    element.setSelector(new IFactory() {

      public Object getValue(Object context) {
        FileDialog dialog = new FileDialog(Display.getCurrent()
            .getActiveShell(), SWT.OPEN);

        ExportData dat = (ExportData) bndr.getObject();
        if (dat.asCsv) {
          dialog.setFilterExtensions(new String[] { "*.csv" });
          dialog.setFilterNames(new String[] { "*.csv" });
          dialog.setOverwrite(false);
        } else if (dat.asXML) {
          dialog.setFilterExtensions(new String[] { "*.xml" });
          dialog.setFilterNames(new String[] { "*.xml" });
          dialog.setOverwrite(false);
        }

        String path = dialog.open();
        return path;
      }

      public String getName() {
        return "Browse...";
      }

      public String getDescription() {
        return "";
      }
    });
    r.add(element);
    return r;
  }

  private static CompositeEditor createFilePage(final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    OneLineTextElement<String> element = new OneLineTextElement<String>(
        bndr.getBinding("outPut"));
    element.setSelector(new IFactory() {

      public Object getValue(Object context) {
        FileDialog dialog = new FileDialog(Display.getCurrent()
            .getActiveShell(), SWT.SAVE);

        ImportData dat = (ImportData) bndr.getObject();
        if (dat.asCsv) {
          dialog.setFilterExtensions(new String[] { "*.csv" });
          dialog.setFilterNames(new String[] { "*.csv" });
          dialog.setOverwrite(true);
        } else if (dat.asXML) {
          dialog.setFilterExtensions(new String[] { "*.xml" });
          dialog.setFilterNames(new String[] { "*.xml" });
          dialog.setOverwrite(true);
        }

        String path = dialog.open();

        return path;
      }

      public String getName() {
        return "Browse...";
      }

      public String getDescription() {
        return "";
      }
    });
    r.add(element);
    return r;
  }

  private static CompositeEditor createJDBCPage(final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    OneLineTextElement<String> element = new OneLineTextElement<String>(
        bndr.getBinding("jdbcConnection"));
    /*
     * element.setSelector(new IFactory() {
     *
     * public Object getValue(Object context) { // TODO Auto-generated
     * method stub return null; }
     *
     * public String getName() { return "Browse..."; }
     *
     * public String getDescription() { return ""; } });
     */
    OneLineTextElement<String> element1 = new OneLineTextElement<String>(
        bndr.getBinding("jdbcDriverClassName"));
    OneLineTextElement<String> elementL = new OneLineTextElement<String>(
        bndr.getBinding("databaseLogin"));
    OneLineTextElement<String> elementP = new OneLineTextElement<String>(
        bndr.getBinding("databasePasswd"));
    elementP.setIsPassword(true);

    r.add(element);
    r.add(element1);
    r.add(elementL);
    r.add(elementP);

    Container element2 = new Container(Container.GROUP);
    element2.getLayoutHints().setGrabHorizontal(true);
    element2.setLayoutManager(new HorizontalLayouter());
    element2.setText("Class Path");

    final ListEnumeratedValueSelector<String> classpath = new ListEnumeratedValueSelector<String>(
        bndr.getBinding("jdbcDriverClassPath")) {

      protected void updateSize(TableViewer newCheckList) {
        // TODO Auto-generated method stub
        TableColumn tableColumn = (TableColumn) columnWidget;
        tableColumn.pack();
        // int width = tableColumn.getWidth();
        // int width2 = newCheckList.getTable().getBounds().width;
        // if (width < width2) {
        // ((TableColumn) columnWidget).setWidth(width2 - 5);
        // }
      }
    };
    ButtonSelector addButton = new ButtonSelector();
    addButton.setText("add jar");
    GridData addDat = new GridData(GridData.FILL_HORIZONTAL);
    addButton.setLayoutData(addDat);
    addButton.addListener(SWT.Selection, new SWTEventListener<Button>() {

      public void handleEvent(AbstractUIElement<Button> element,
          Event event) {

        FileDialog dialog = new FileDialog(Display.getCurrent()
            .getActiveShell(), SWT.MULTI | SWT.SELECTED);
        dialog.setFilterExtensions(new String[] { "*.jar" });
        dialog.setFilterNames(new String[] { "*.jar" });
        dialog.setOverwrite(false);
        dialog.open();

        String[] names = dialog.getFileNames();
        String path = dialog.getFilterPath();

        for (String name : names) {
          String result = path + File.separator + name;
          classpath.addValue(result);
          ((TableViewer) classpath.getViewer()).getTable()
              .getParent().layout();
        }
      }
    });

    ButtonSelector removeButton = new ButtonSelector();
    removeButton.setText("remove jar");
    GridData removeDat = new GridData(GridData.FILL_HORIZONTAL);
    removeButton.setLayoutData(removeDat);

    removeButton.addListener(SWT.Selection, new SWTEventListener<Button>() {

      public void handleEvent(AbstractUIElement<Button> element,
          Event event) {
        for (Iterator i = classpath.getSelection().iterator(); i
            .hasNext();) {
          String str = (String) i.next();
          classpath.removeValue(str);
        }
      }
    });
    Container buttonContainer = new Container();
    buttonContainer.setLayout(new GridLayout(1, true));
    buttonContainer.getLayoutHints().setGrabHorizontal(false);
    buttonContainer.setBordered(false);
    buttonContainer.add(addButton);
    buttonContainer.add(removeButton);

    element2.add(classpath);
    element2.add(buttonContainer);
    r.add(element2);
    // r.add(classpath);
    return r;
  }

  private static CompositeEditor createDirectoryPage(final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    OneLineTextElement<String> element = new OneLineTextElement<String>(
        bndr.getBinding("outPut"));
    element.setSelector(new IFactory() {

      public Object getValue(Object context) {
        DirectoryDialog dialog = new DirectoryDialog(Display
            .getCurrent().getActiveShell(), SWT.SAVE);
        dialog.setMessage("Please choose path for import");

        String path = dialog.open();

        return path;
      }

      public String getName() {
        return "Browse...";
      }

      public String getDescription() {
        return "";
      }
    });
    r.add(element);
    return r;
  }

  private static CompositeEditor createFolderPage(final Binding bndr){
    CompositeEditor r = new CompositeEditor(bndr);

    OneLineTextElement<String> element = new OneLineTextElement<String>(
        bndr.getBinding("outPut"));
    element.setSelector(new IFactory() {

      public Object getValue(Object context) {
        DirectoryDialog dialog = new DirectoryDialog(Display.getCurrent()
            .getActiveShell(),SWT.OPEN | SWT.READ_ONLY | SWT.DIALOG_TRIM);       
        dialog.setText("Please select path");
        // dialog.set

        String open = dialog.open();
        return open;
      }

      public String getName() {
        return "Browse...";
      }

      public String getDescription() {
        return "";
      }
    });
    r.add(element);
    return r;
  }
 
  private static CompositeEditor createDirectoryPageForExport(
      final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);

    OneLineTextElement<String> element = new OneLineTextElement<String>(
        bndr.getBinding("outPut"));
    element.setSelector(new IFactory() {

      public Object getValue(Object context) {
        FileDialog dialog = new FileDialog(Display.getCurrent()
            .getActiveShell(), SWT.MULTI | SWT.OPEN);

        dialog.setOverwrite(false);
        dialog.setText("Please select files to export");
        // dialog.set

        ExportData dat = (ExportData) bndr.getObject();
        if (dat.asCsv) {
          if (Platform.getOS().equals(Platform.OS_MACOSX)) {
            dialog.setFilterExtensions(new String[] { "csv" });
            dialog.setFilterNames(new String[] { ".csv" });
          } else {
            dialog.setFilterExtensions(new String[] { "*.csv" });
            dialog.setFilterNames(new String[] { "*.csv" });
          }

          dialog.setOverwrite(false);
        } else if (dat.asXML) {
          if (Platform.getOS().equals(Platform.OS_MACOSX)) {
            dialog.setFilterExtensions(new String[] { "xml" });
            dialog.setFilterNames(new String[] { ".xml" });
          } else {
            dialog.setFilterExtensions(new String[] { "*.xml" });
            dialog.setFilterNames(new String[] { "*.xml" });
          }
          dialog.setOverwrite(false);
        }

        dialog.open();

        String[] selected = dialog.getFileNames();

        String result = dialog.getFilterPath()
            .replaceAll(",", "&#044;") + ",";
        int i = 0;
        for (String tmp : selected) {
          result += tmp.replaceAll(",", "&#044;");
          if (i != selected.length - 1) {
            result += ",";
          }
        }

        return result;
      }

      public String getName() {
        return "Browse...";
      }

      public String getDescription() {
        return "";
      }
    });
    r.add(element);
    return r;
  }

  private static CompositeEditor createOptionsPageForBulkImport(
      final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);

    Container c = new Container(Container.GROUP);
    c.setCaption("Output format");
    c.setLayoutManager(new OneElementOnLineLayouter());
    c.add(new ButtonSelector(bndr.getBinding("asCsv"), SWT.RADIO));
    c.add(new ButtonSelector(bndr.getBinding("asXML"), SWT.RADIO));

    r.add(c);
    return r;
  }

  private static CompositeEditor createOptionsPage(final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    Container c = new Container(Container.GROUP);
    c.setCaption("Output format");
    c.setLayoutManager(new OneElementOnLineLayouter());
    c.add(new ButtonSelector(bndr.getBinding("asCsv"), SWT.RADIO));
    c.add(new ButtonSelector(bndr.getBinding("asXML"), SWT.RADIO));
    c.add(new ButtonSelector(bndr.getBinding("asBinary"), SWT.RADIO));

    r.add(c);

    Container cm = new Container(Container.GROUP);
    cm.setCaption("Scope of import");
    cm.setLayoutManager(new OneElementOnLineLayouter());
    cm.add(new ButtonSelector(bndr.getBinding("allEntitiesOf"), SWT.RADIO));
    cm.add(new ButtonSelector(bndr.getBinding("selectedEntitiesOf"),
        SWT.RADIO));
    cm.add(new ButtonSelector(bndr.getBinding("entitiesOfSelectedKinds"),
        SWT.RADIO));
    r.add(cm);

    return r;
  }

  private static CompositeEditor createOptionsPageForExport(final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    Container c = new Container(Container.GROUP);
    c.setCaption("Type of import");
    c.setLayoutManager(new OneElementOnLineLayouter());
    c.add(new ButtonSelector(bndr.getBinding("asCsv"), SWT.RADIO));
    c.add(new ButtonSelector(bndr.getBinding("asXML"), SWT.RADIO));
    c.add(new ButtonSelector(bndr.getBinding("asBinary"), SWT.RADIO));

    r.add(c);

    Container cm = new Container(Container.GROUP);
    cm.setCaption("Scope of export");
    cm.setLayoutManager(new OneElementOnLineLayouter());
    cm.add(new ButtonSelector(bndr.getBinding("multiExport"), SWT.CHECK));

    r.add(cm);

    return r;
  }

  private static CompositeEditor createOptionsPageForBulkExport(
      final Binding bndr) {
    CompositeEditor r = new CompositeEditor(bndr);
    Container c = new Container(Container.GROUP);
    c.setCaption("Type of import");
    c.setLayoutManager(new OneElementOnLineLayouter());
    c.add(new ButtonSelector(bndr.getBinding("asCsv"), SWT.RADIO));
    c.add(new ButtonSelector(bndr.getBinding("asXML"), SWT.RADIO));

    r.add(c);

    // Container cm = new Container(Container.GROUP);
    // cm.setCaption("Scope of export");
    // cm.setLayoutManager(new OneElementOnLineLayouter());
    // cm.add(new ButtonSelector(bndr.getBinding("multiExport"),
    // SWT.CHECK));
    // r.add(cm);

    return r;
  }

  private static CompositeEditor createColumnsPage(
      final BaseDataFacade facade, final Binding bndr) {
    CompositeEditor m = new CompositeEditor(bndr);
    ListEnumeratedValueSelector<String> mr = new ListEnumeratedValueSelector<String>();
    Binding binding = bndr.getBinding("columns");
    Realm realm = new Realm(facade.getFields());
    binding.setRealm(realm);
    mr.setBinding(binding);
    mr.setAsCheckBox(true);
    m.add(mr);
    return m;
  }

  private static CompositeEditor createKindsPage(final BaseDataFacade facade,
      final Binding bndr) {
    CompositeEditor m = new CompositeEditor(bndr);
    ListEnumeratedValueSelector<String> mr = new ListEnumeratedValueSelector<String>();
    Binding binding = bndr.getBinding("kinds");
    Realm realm = new Realm(getKnownKinds(facade));
    binding.setRealm(realm);
    mr.setBinding(binding);
    mr.setAsCheckBox(true);
    m.add(mr);
    return m;
  }

  private class ImportExportDataWizard extends FlowWizard {

    public ImportExportDataWizard(Binding bnd, String title) {
      super(bnd, title);
    }

  }
}
TOP

Related Classes of com.onpositive.gae.baseviewer.ImportExportDialogs

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.