Search in sources :

Example 11 with KettleXulLoader

use of org.pentaho.di.ui.xul.KettleXulLoader in project pdi-dataservice-server-plugin by pentaho.

the class DataServiceTestDialog method initXul.

private Document initXul(Composite parent) throws KettleException {
    try {
        SwtXulLoader swtLoader = new KettleXulLoader();
        swtLoader.setOuterContext(parent);
        swtLoader.registerClassLoader(getClass().getClassLoader());
        XulDomContainer container = swtLoader.loadXul(XUL_PATH, resourceBundle);
        container.addEventHandler(dataServiceTestController);
        final XulRunner runner = new SwtXulRunner();
        runner.addContainer(container);
        runner.initialize();
        return container.getDocumentRoot();
    } catch (XulException xulException) {
        throw new KettleException("Failed to initialize DataServicesTestDialog.", xulException);
    }
}
Also used : KettleException(org.pentaho.di.core.exception.KettleException) XulException(org.pentaho.ui.xul.XulException) KettleXulLoader(org.pentaho.di.ui.xul.KettleXulLoader) SwtXulLoader(org.pentaho.ui.xul.swt.SwtXulLoader) XulDomContainer(org.pentaho.ui.xul.XulDomContainer) XulRunner(org.pentaho.ui.xul.XulRunner) SwtXulRunner(org.pentaho.ui.xul.swt.SwtXulRunner) SwtXulRunner(org.pentaho.ui.xul.swt.SwtXulRunner)

Example 12 with KettleXulLoader

use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.

the class Spoon method init.

public void init(TransMeta ti) {
    FormLayout layout = new FormLayout();
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    shell.setLayout(layout);
    addFileListener(new TransFileListener());
    addFileListener(new JobFileListener());
    // INIT Data structure
    if (ti != null) {
        delegates.trans.addTransformation(ti);
    }
    // Load settings in the props
    loadSettings();
    transExecutionConfiguration = new TransExecutionConfiguration();
    transExecutionConfiguration.setGatheringMetrics(true);
    transPreviewExecutionConfiguration = new TransExecutionConfiguration();
    transPreviewExecutionConfiguration.setGatheringMetrics(true);
    transDebugExecutionConfiguration = new TransExecutionConfiguration();
    transDebugExecutionConfiguration.setGatheringMetrics(true);
    jobExecutionConfiguration = new JobExecutionConfiguration();
    jobExecutionConfiguration.setGatheringMetrics(true);
    // Clean out every time we start, auto-loading etc, is not a good idea
    // If they are needed that often, set them in the kettle.properties file
    // 
    variables = new RowMetaAndData(new RowMeta());
    // props.setLook(shell);
    shell.setImage(GUIResource.getInstance().getImageSpoon());
    cursor_hourglass = new Cursor(display, SWT.CURSOR_WAIT);
    cursor_hand = new Cursor(display, SWT.CURSOR_HAND);
    Composite sashComposite = null;
    MainSpoonPerspective mainPerspective = null;
    try {
        KettleXulLoader xulLoader = new KettleXulLoader();
        xulLoader.setIconsSize(16, 16);
        xulLoader.setOuterContext(shell);
        xulLoader.setSettingsManager(XulSpoonSettingsManager.getInstance());
        ApplicationWindowLocal.setApplicationWindow(this);
        mainSpoonContainer = xulLoader.loadXul(XUL_FILE_MAIN, new XulSpoonResourceBundle());
        BindingFactory bf = new DefaultBindingFactory();
        bf.setDocument(mainSpoonContainer.getDocumentRoot());
        mainSpoonContainer.addEventHandler(this);
        /* menuBar = (XulMenubar) */
        mainSpoonContainer.getDocumentRoot().getElementById("spoon-menubar");
        mainToolbar = (XulToolbar) mainSpoonContainer.getDocumentRoot().getElementById("main-toolbar");
        props.setLook((Control) mainToolbar.getManagedObject(), Props.WIDGET_STYLE_TOOLBAR);
        /* canvas = (XulVbox) */
        mainSpoonContainer.getDocumentRoot().getElementById("trans-job-canvas");
        deck = (SwtDeck) mainSpoonContainer.getDocumentRoot().getElementById("canvas-deck");
        final Composite tempSashComposite = new Composite(shell, SWT.None);
        sashComposite = tempSashComposite;
        mainPerspective = new MainSpoonPerspective(tempSashComposite, tabfolder);
        if (startupPerspective == null) {
            startupPerspective = mainPerspective.getId();
        }
        SpoonPerspectiveManager.getInstance().setStartupPerspective(startupPerspective);
        SpoonPerspectiveManager.getInstance().addPerspective(mainPerspective);
        SpoonPluginManager.getInstance().applyPluginsForContainer("spoon", mainSpoonContainer);
        SpoonPerspectiveManager.getInstance().setDeck(deck);
        SpoonPerspectiveManager.getInstance().setXulDoc(mainSpoonContainer);
        SpoonPerspectiveManager.getInstance().initialize();
    } catch (Exception e) {
        LogChannel.GENERAL.logError("Error initializing transformation", e);
    }
    // addBar();
    // Set the shell size, based upon previous time...
    WindowProperty windowProperty = props.getScreen(APP_TITLE);
    if (windowProperty != null) {
        windowProperty.setShell(shell);
    } else {
        shell.pack();
        // Default = maximized!
        shell.setMaximized(true);
    }
    layout = new FormLayout();
    layout.marginWidth = 0;
    layout.marginHeight = 0;
    GridData data = new GridData();
    data.grabExcessHorizontalSpace = true;
    data.grabExcessVerticalSpace = true;
    data.verticalAlignment = SWT.FILL;
    data.horizontalAlignment = SWT.FILL;
    sashComposite.setLayoutData(data);
    sashComposite.setLayout(layout);
    sashform = new SashForm(sashComposite, SWT.HORIZONTAL);
    FormData fdSash = new FormData();
    fdSash.left = new FormAttachment(0, 0);
    // fdSash.top = new FormAttachment((org.eclipse.swt.widgets.ToolBar)
    // toolbar.getNativeObject(), 0);
    fdSash.top = new FormAttachment(0, 0);
    fdSash.bottom = new FormAttachment(100, 0);
    fdSash.right = new FormAttachment(100, 0);
    sashform.setLayoutData(fdSash);
    createPopupMenus();
    addTree();
    addTabs();
    mainPerspective.setTabset(this.tabfolder);
    ((Composite) deck.getManagedObject()).layout(true, true);
    SpoonPluginManager.getInstance().notifyLifecycleListeners(SpoonLifeCycleEvent.STARTUP);
    // Add a browser widget
    if (props.showWelcomePageOnStartup()) {
        showWelcomePage();
    }
    // Allow data to be copied or moved to the drop target
    int operations = DND.DROP_COPY | DND.DROP_DEFAULT;
    DropTarget target = new DropTarget(shell, operations);
    // Receive data in File format
    final FileTransfer fileTransfer = FileTransfer.getInstance();
    Transfer[] types = new Transfer[] { fileTransfer };
    target.setTransfer(types);
    target.addDropListener(new DropTargetListener() {

        @Override
        public void dragEnter(DropTargetEvent event) {
            if (event.detail == DND.DROP_DEFAULT) {
                if ((event.operations & DND.DROP_COPY) != 0) {
                    event.detail = DND.DROP_COPY;
                } else {
                    event.detail = DND.DROP_NONE;
                }
            }
        }

        @Override
        public void dragOver(DropTargetEvent event) {
            event.feedback = DND.FEEDBACK_SELECT | DND.FEEDBACK_SCROLL;
        }

        @Override
        public void dragOperationChanged(DropTargetEvent event) {
            if (event.detail == DND.DROP_DEFAULT) {
                if ((event.operations & DND.DROP_COPY) != 0) {
                    event.detail = DND.DROP_COPY;
                } else {
                    event.detail = DND.DROP_NONE;
                }
            }
        }

        @Override
        public void dragLeave(DropTargetEvent event) {
        }

        @Override
        public void dropAccept(DropTargetEvent event) {
        }

        @Override
        public void drop(DropTargetEvent event) {
            if (fileTransfer.isSupportedType(event.currentDataType)) {
                String[] files = (String[]) event.data;
                for (String file : files) {
                    openFile(file, false);
                }
            }
        }
    });
    // listen for steps being added or removed
    PluginRegistry.getInstance().addPluginListener(StepPluginType.class, new PluginTypeListener() {

        @Override
        public void pluginAdded(Object serviceObject) {
            // hack to get the tree to reload
            previousShowTrans = false;
            Display.getDefault().asyncExec(new Runnable() {

                @Override
                public void run() {
                    refreshCoreObjects();
                }
            });
        }

        @Override
        public void pluginRemoved(Object serviceObject) {
            // hack to get the tree to reload
            previousShowTrans = false;
            Display.getDefault().asyncExec(new Runnable() {

                @Override
                public void run() {
                    refreshCoreObjects();
                }
            });
        }

        @Override
        public void pluginChanged(Object serviceObject) {
        }
    });
}
Also used : RowMeta(org.pentaho.di.core.row.RowMeta) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) Cursor(org.eclipse.swt.graphics.Cursor) DefaultBindingFactory(org.pentaho.ui.xul.binding.DefaultBindingFactory) WindowProperty(org.pentaho.di.ui.core.gui.WindowProperty) RowMetaAndData(org.pentaho.di.core.RowMetaAndData) PluginTypeListener(org.pentaho.di.core.plugins.PluginTypeListener) DropTargetListener(org.eclipse.swt.dnd.DropTargetListener) FormAttachment(org.eclipse.swt.layout.FormAttachment) FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) Composite(org.eclipse.swt.widgets.Composite) FileTransfer(org.eclipse.swt.dnd.FileTransfer) KettleXulLoader(org.pentaho.di.ui.xul.KettleXulLoader) DropTargetEvent(org.eclipse.swt.dnd.DropTargetEvent) JobExecutionConfiguration(org.pentaho.di.job.JobExecutionConfiguration) SWTException(org.eclipse.swt.SWTException) KettleRowException(org.pentaho.di.core.exception.KettleRowException) FileSystemException(org.apache.commons.vfs2.FileSystemException) MetaStoreException(org.pentaho.metastore.api.exceptions.MetaStoreException) KettleValueException(org.pentaho.di.core.exception.KettleValueException) KettleAuthException(org.pentaho.di.core.exception.KettleAuthException) KettleRepositoryLostException(org.pentaho.di.repository.KettleRepositoryLostException) KettleXMLException(org.pentaho.di.core.exception.KettleXMLException) LifecycleException(org.pentaho.di.core.lifecycle.LifecycleException) KettleMissingPluginsException(org.pentaho.di.core.exception.KettleMissingPluginsException) KettleFileException(org.pentaho.di.core.exception.KettleFileException) KettleException(org.pentaho.di.core.exception.KettleException) MalformedURLException(java.net.MalformedURLException) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) TransExecutionConfiguration(org.pentaho.di.trans.TransExecutionConfiguration) SashForm(org.eclipse.swt.custom.SashForm) WaitBoxRunnable(org.pentaho.ui.xul.components.WaitBoxRunnable) GridData(org.eclipse.swt.layout.GridData) Transfer(org.eclipse.swt.dnd.Transfer) ImageTransfer(org.eclipse.swt.dnd.ImageTransfer) FileTransfer(org.eclipse.swt.dnd.FileTransfer) RepositoryObject(org.pentaho.di.repository.RepositoryObject) SimpleLoggingObject(org.pentaho.di.core.logging.SimpleLoggingObject) FileObject(org.apache.commons.vfs2.FileObject) DropTarget(org.eclipse.swt.dnd.DropTarget) DefaultBindingFactory(org.pentaho.ui.xul.binding.DefaultBindingFactory) BindingFactory(org.pentaho.ui.xul.binding.BindingFactory)

Example 13 with KettleXulLoader

use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.

the class XulDatabaseExplorerDialog method open.

public boolean open() {
    try {
        KettleXulLoader theLoader = new KettleXulLoader();
        theLoader.setSettingsManager(XulSpoonSettingsManager.getInstance());
        theLoader.setSettingsManager(new DefaultSettingsManager(new File(Const.getKettleDirectory() + Const.FILE_SEPARATOR + "xulSettings.properties")));
        theLoader.setOuterContext(this.shell);
        this.container = theLoader.loadXul(XUL, new XulDatabaseExplorerResourceBundle());
        XulDialog theExplorerDialog = (XulDialog) this.container.getDocumentRoot().getElementById("databaseExplorerDialog");
        SpoonPluginManager.getInstance().applyPluginsForContainer("database_dialog", container);
        this.controller = new XulDatabaseExplorerController(this.shell, this.databaseMeta, this.databases, look);
        this.container.addEventHandler(this.controller);
        this.runner = new SwtXulRunner();
        this.runner.addContainer(this.container);
        this.runner.initialize();
        this.controller.setSelectedSchemaAndTable(schemaName, selectedTable);
        // show dialog if connection is success only.
        if (controller.getActionStatus() == UiPostActionStatus.OK) {
            theExplorerDialog.show();
        }
    } catch (Exception e) {
        LogChannel.GENERAL.logError("Error exploring database", e);
    }
    return this.controller.getSelectedTable() != null;
}
Also used : XulDialog(org.pentaho.ui.xul.containers.XulDialog) KettleXulLoader(org.pentaho.di.ui.xul.KettleXulLoader) File(java.io.File) SwtXulRunner(org.pentaho.ui.xul.swt.SwtXulRunner) DefaultSettingsManager(org.pentaho.ui.xul.impl.DefaultSettingsManager)

Example 14 with KettleXulLoader

use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.

the class XulStepFieldsDialog method open.

public void open(boolean isAcceptButtonHidden) {
    try {
        KettleXulLoader theLoader = new KettleXulLoader();
        theLoader.setOuterContext(this.shell);
        theLoader.setSettingsManager(XulSpoonSettingsManager.getInstance());
        this.container = theLoader.loadXul(XUL);
        this.controller = new XulStepFieldsController(this.shell, this.databaseMeta, this.schemaTableCombo, this.rowMeta);
        this.controller.setShowAcceptButton(isAcceptButtonHidden);
        this.container.addEventHandler(this.controller);
        this.runner = new SwtXulRunner();
        this.runner.addContainer(this.container);
        this.runner.initialize();
        XulDialog thePreviewDialog = (XulDialog) this.container.getDocumentRoot().getElementById("stepFieldsDialog");
        thePreviewDialog.show();
        ((SwtDialog) thePreviewDialog).dispose();
    } catch (Exception e) {
        logger.info(e);
    }
}
Also used : SwtDialog(org.pentaho.ui.xul.swt.tags.SwtDialog) XulDialog(org.pentaho.ui.xul.containers.XulDialog) KettleXulLoader(org.pentaho.di.ui.xul.KettleXulLoader) SwtXulRunner(org.pentaho.ui.xul.swt.SwtXulRunner)

Example 15 with KettleXulLoader

use of org.pentaho.di.ui.xul.KettleXulLoader in project pentaho-kettle by pentaho.

the class SpoonBrowser method addToolBar.

protected void addToolBar() {
    try {
        XulLoader loader = new KettleXulLoader();
        loader.setSettingsManager(XulSpoonSettingsManager.getInstance());
        ResourceBundle bundle = GlobalMessages.getBundle("org/pentaho/di/ui/spoon/messages/messages");
        XulDomContainer xulDomContainer = loader.loadXul(XUL_FILE_BROWSER_TOOLBAR, bundle);
        xulDomContainer.addEventHandler(this);
        toolbar = (XulToolbar) xulDomContainer.getDocumentRoot().getElementById("nav-toolbar");
        @SuppressWarnings("unused") ToolBar swtToolBar = (ToolBar) toolbar.getManagedObject();
        spoon.props.setLook(swtToolBar, Props.WIDGET_STYLE_TOOLBAR);
        // Add a URL
        back = (XulToolbarbutton) toolbar.getElementById("browse-back");
        back.setDisabled(true);
        forward = (XulToolbarbutton) toolbar.getElementById("browse-forward");
        forward.setLabel(BaseMessages.getString(PKG, "SpoonBrowser.Dialog.Forward"));
        forward.setDisabled(false);
        location = (XulTextbox) toolbar.getElementById("browser-address");
        Control toolbarControl = (Control) toolbar.getManagedObject();
        toolbarControl.setLayoutData(new FormData());
        toolbarControl.setParent(composite);
    } catch (Exception e) {
        e.printStackTrace();
        new ErrorDialog(shell, BaseMessages.getString(PKG, "Spoon.Exception.ErrorReadingXULFile.Title"), BaseMessages.getString(PKG, "Spoon.Exception.ErrorReadingXULFile.Message", XUL_FILE_BROWSER_TOOLBAR), e);
    }
}
Also used : FormData(org.eclipse.swt.layout.FormData) Control(org.eclipse.swt.widgets.Control) KettleXulLoader(org.pentaho.di.ui.xul.KettleXulLoader) XulLoader(org.pentaho.ui.xul.XulLoader) ToolBar(org.eclipse.swt.widgets.ToolBar) KettleXulLoader(org.pentaho.di.ui.xul.KettleXulLoader) ErrorDialog(org.pentaho.di.ui.core.dialog.ErrorDialog) ResourceBundle(java.util.ResourceBundle) XulDomContainer(org.pentaho.ui.xul.XulDomContainer)

Aggregations

KettleXulLoader (org.pentaho.di.ui.xul.KettleXulLoader)19 XulDomContainer (org.pentaho.ui.xul.XulDomContainer)11 ResourceBundle (java.util.ResourceBundle)9 ErrorDialog (org.pentaho.di.ui.core.dialog.ErrorDialog)9 SwtXulRunner (org.pentaho.ui.xul.swt.SwtXulRunner)9 ToolBar (org.eclipse.swt.widgets.ToolBar)8 KettleException (org.pentaho.di.core.exception.KettleException)7 XulLoader (org.pentaho.ui.xul.XulLoader)7 XulSpoonResourceBundle (org.pentaho.di.ui.spoon.XulSpoonResourceBundle)5 XulException (org.pentaho.ui.xul.XulException)5 SwtDialog (org.pentaho.ui.xul.swt.tags.SwtDialog)4 KettleValueException (org.pentaho.di.core.exception.KettleValueException)3 XulDialog (org.pentaho.ui.xul.containers.XulDialog)3 FormData (org.eclipse.swt.layout.FormData)2 File (java.io.File)1 MalformedURLException (java.net.MalformedURLException)1 MissingResourceException (java.util.MissingResourceException)1 FileObject (org.apache.commons.vfs2.FileObject)1 FileSystemException (org.apache.commons.vfs2.FileSystemException)1 SWTException (org.eclipse.swt.SWTException)1