Search in sources :

Example 6 with VfsFileChooserDialog

use of org.pentaho.vfs.ui.VfsFileChooserDialog in project pentaho-kettle by pentaho.

the class GoogleDriveKettleLifecycleListener method onStart.

public void onStart(LifeEventHandler handler) throws LifecycleException {
    if (new File(GoogleDriveFileObject.resolveCredentialsPath() + "/" + resourceBundle.getString("client.secrets")).exists()) {
        /*
      * Registers the UI for the VFS Browser
      * */
        final Spoon spoon = Spoon.getInstance();
        spoon.getDisplay().asyncExec(new Runnable() {

            public void run() {
                VfsFileChooserDialog dialog = spoon.getVfsFileChooserDialog(null, null);
                GoogleDriveFileChooserDialog hadoopVfsFileChooserDialog = new GoogleDriveFileChooserDialog(GoogleDriveFileProvider.SCHEME, GoogleDriveFileProvider.DISPLAY_NAME, dialog, SWT.NONE);
                dialog.addVFSUIPanel(hadoopVfsFileChooserDialog);
            }
        });
    }
}
Also used : GoogleDriveFileChooserDialog(org.pentaho.googledrive.vfs.ui.GoogleDriveFileChooserDialog) VfsFileChooserDialog(org.pentaho.vfs.ui.VfsFileChooserDialog) Spoon(org.pentaho.di.ui.spoon.Spoon) File(java.io.File)

Example 7 with VfsFileChooserDialog

use of org.pentaho.vfs.ui.VfsFileChooserDialog in project pentaho-kettle by pentaho.

the class RepositoryVfsKettleLifecycleListener method onStart.

@Override
public void onStart(LifeEventHandler handler) throws LifecycleException {
    /*
     * Registers the UI for the VFS Browser
     */
    final Spoon spoon = spoonSupplier.get();
    spoon.getDisplay().asyncExec(new Runnable() {

        public void run() {
            VfsFileChooserDialog dialog = spoon.getVfsFileChooserDialog(null, null);
            RepositoryVfsProviderDialog hadoopVfsFileChooserDialog = new RepositoryVfsProviderDialog(RepositoryVfsProvider.SCHEME, "Repository VFS", dialog, SWT.NONE);
            dialog.addVFSUIPanel(hadoopVfsFileChooserDialog);
        }
    });
}
Also used : RepositoryVfsProviderDialog(org.pentaho.repositoryvfs.dialog.RepositoryVfsProviderDialog) VfsFileChooserDialog(org.pentaho.vfs.ui.VfsFileChooserDialog) Spoon(org.pentaho.di.ui.spoon.Spoon)

Example 8 with VfsFileChooserDialog

use of org.pentaho.vfs.ui.VfsFileChooserDialog in project pentaho-kettle by pentaho.

the class MetaInjectDialog method selectFileTrans.

private void selectFileTrans(boolean useVfs) {
    String curFile = transMeta.environmentSubstitute(wPath.getText());
    if (useVfs) {
        FileObject root = null;
        String parentFolder = null;
        try {
            parentFolder = KettleVFS.getFileObject(transMeta.environmentSubstitute(transMeta.getFilename())).getParent().toString();
        } catch (Exception e) {
        // Take no action
        }
        try {
            root = KettleVFS.getFileObject(curFile != null ? curFile : Const.getUserHomeDirectory());
            VfsFileChooserDialog vfsFileChooser = Spoon.getInstance().getVfsFileChooserDialog(root.getParent(), root);
            FileObject file = vfsFileChooser.open(shell, null, Const.STRING_TRANS_FILTER_EXT, Const.getTransformationFilterNames(), VfsFileChooserDialog.VFS_DIALOG_OPEN_FILE);
            if (file == null) {
                return;
            }
            String fileName = file.getName().toString();
            if (fileName != null) {
                loadFileTrans(fileName);
                if (parentFolder != null && fileName.startsWith(parentFolder)) {
                    fileName = fileName.replace(parentFolder, "${" + Const.INTERNAL_VARIABLE_ENTRY_CURRENT_DIRECTORY + "}");
                }
                wPath.setText(fileName);
                specificationMethod = ObjectLocationSpecificationMethod.FILENAME;
            }
        } catch (IOException | KettleException e) {
            new ErrorDialog(shell, BaseMessages.getString(PKG, "SingleThreaderDialog.ErrorLoadingTransformation.DialogTitle"), BaseMessages.getString(PKG, "SingleThreaderDialog.ErrorLoadingTransformation.DialogMessage"), e);
        }
    }
}
Also used : KettleException(org.pentaho.di.core.exception.KettleException) VfsFileChooserDialog(org.pentaho.vfs.ui.VfsFileChooserDialog) ErrorDialog(org.pentaho.di.ui.core.dialog.ErrorDialog) FileObject(org.apache.commons.vfs2.FileObject) IOException(java.io.IOException) KettleException(org.pentaho.di.core.exception.KettleException) IOException(java.io.IOException)

Example 9 with VfsFileChooserDialog

use of org.pentaho.vfs.ui.VfsFileChooserDialog in project pentaho-kettle by pentaho.

the class Spoon method getVfsFileChooserDialog.

public VfsFileChooserDialog getVfsFileChooserDialog(FileObject rootFile, FileObject initialFile) {
    if (vfsFileChooserDialog == null) {
        vfsFileChooserDialog = new VfsFileChooserDialog(shell, new KettleVfsDelegatingResolver(), rootFile, initialFile);
    }
    vfsFileChooserDialog.setRootFile(rootFile);
    vfsFileChooserDialog.setInitialFile(initialFile);
    return vfsFileChooserDialog;
}
Also used : VfsFileChooserDialog(org.pentaho.vfs.ui.VfsFileChooserDialog) KettleVfsDelegatingResolver(org.pentaho.di.core.vfs.KettleVfsDelegatingResolver)

Example 10 with VfsFileChooserDialog

use of org.pentaho.vfs.ui.VfsFileChooserDialog in project pentaho-kettle by pentaho.

the class JobEntryFileExistsDialog method open.

public JobEntryInterface open() {
    Shell parent = getParent();
    Display display = parent.getDisplay();
    shell = new Shell(parent, props.getJobsDialogStyle());
    props.setLook(shell);
    JobDialog.setShellImage(shell, jobEntry);
    ModifyListener lsMod = new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            jobEntry.setChanged();
        }
    };
    changed = jobEntry.hasChanged();
    FormLayout formLayout = new FormLayout();
    formLayout.marginWidth = Const.FORM_MARGIN;
    formLayout.marginHeight = Const.FORM_MARGIN;
    shell.setLayout(formLayout);
    shell.setText(BaseMessages.getString(PKG, "JobFileExists.Title"));
    int middle = props.getMiddlePct();
    int margin = Const.MARGIN;
    // Filename line
    wlName = new Label(shell, SWT.RIGHT);
    wlName.setText(BaseMessages.getString(PKG, "JobFileExists.Name.Label"));
    props.setLook(wlName);
    fdlName = new FormData();
    fdlName.left = new FormAttachment(0, 0);
    fdlName.right = new FormAttachment(middle, -margin);
    fdlName.top = new FormAttachment(0, margin);
    wlName.setLayoutData(fdlName);
    wName = new Text(shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wName);
    wName.addModifyListener(lsMod);
    fdName = new FormData();
    fdName.left = new FormAttachment(middle, 0);
    fdName.top = new FormAttachment(0, margin);
    fdName.right = new FormAttachment(100, 0);
    wName.setLayoutData(fdName);
    // Filename line
    wlFilename = new Label(shell, SWT.RIGHT);
    wlFilename.setText(BaseMessages.getString(PKG, "JobFileExists.Filename.Label"));
    props.setLook(wlFilename);
    fdlFilename = new FormData();
    fdlFilename.left = new FormAttachment(0, 0);
    fdlFilename.top = new FormAttachment(wName, margin);
    fdlFilename.right = new FormAttachment(middle, -margin);
    wlFilename.setLayoutData(fdlFilename);
    wbFilename = new Button(shell, SWT.PUSH | SWT.CENTER);
    props.setLook(wbFilename);
    wbFilename.setText(BaseMessages.getString(PKG, "System.Button.Browse"));
    fdbFilename = new FormData();
    fdbFilename.right = new FormAttachment(100, 0);
    fdbFilename.top = new FormAttachment(wName, 0);
    // fdbFilename.height = 22;
    wbFilename.setLayoutData(fdbFilename);
    wFilename = new TextVar(jobMeta, shell, SWT.SINGLE | SWT.LEFT | SWT.BORDER);
    props.setLook(wFilename);
    wFilename.addModifyListener(lsMod);
    fdFilename = new FormData();
    fdFilename.left = new FormAttachment(middle, 0);
    fdFilename.top = new FormAttachment(wName, margin);
    fdFilename.right = new FormAttachment(wbFilename, -margin);
    wFilename.setLayoutData(fdFilename);
    // Whenever something changes, set the tooltip to the expanded version:
    wFilename.addModifyListener(new ModifyListener() {

        public void modifyText(ModifyEvent e) {
            wFilename.setToolTipText(jobMeta.environmentSubstitute(wFilename.getText()));
        }
    });
    wbFilename.addSelectionListener(new SelectionAdapter() {

        public void widgetSelected(SelectionEvent e) {
            try {
                FileObject fileName = null;
                try {
                    String curFile = wFilename.getText();
                    if (curFile.trim().length() > 0) {
                        fileName = KettleVFS.getInstance().getFileSystemManager().resolveFile(jobMeta.environmentSubstitute(wFilename.getText()));
                    } else {
                        fileName = KettleVFS.getInstance().getFileSystemManager().resolveFile(Const.getUserHomeDirectory());
                    }
                } catch (FileSystemException ex) {
                    fileName = KettleVFS.getInstance().getFileSystemManager().resolveFile(Const.getUserHomeDirectory());
                }
                VfsFileChooserDialog vfsFileChooser = Spoon.getInstance().getVfsFileChooserDialog(fileName.getParent(), fileName);
                FileObject selected = vfsFileChooser.open(shell, null, EXTENSIONS, FILETYPES, VfsFileChooserDialog.VFS_DIALOG_OPEN_FILE);
                wFilename.setText(selected != null ? selected.getURL().toString() : Const.EMPTY_STRING);
            } catch (FileSystemException ex) {
                ex.printStackTrace();
            }
        }
    });
    wOK = new Button(shell, SWT.PUSH);
    wOK.setText(BaseMessages.getString(PKG, "System.Button.OK"));
    FormData fd = new FormData();
    fd.right = new FormAttachment(50, -10);
    fd.bottom = new FormAttachment(100, 0);
    fd.width = 100;
    wOK.setLayoutData(fd);
    wCancel = new Button(shell, SWT.PUSH);
    wCancel.setText(BaseMessages.getString(PKG, "System.Button.Cancel"));
    fd = new FormData();
    fd.left = new FormAttachment(50, 10);
    fd.bottom = new FormAttachment(100, 0);
    fd.width = 100;
    wCancel.setLayoutData(fd);
    BaseStepDialog.positionBottomButtons(shell, new Button[] { wOK, wCancel }, margin, wFilename);
    // Add listeners
    lsCancel = new Listener() {

        public void handleEvent(Event e) {
            cancel();
        }
    };
    lsOK = new Listener() {

        public void handleEvent(Event e) {
            ok();
        }
    };
    wCancel.addListener(SWT.Selection, lsCancel);
    wOK.addListener(SWT.Selection, lsOK);
    lsDef = new SelectionAdapter() {

        public void widgetDefaultSelected(SelectionEvent e) {
            ok();
        }
    };
    wName.addSelectionListener(lsDef);
    wFilename.addSelectionListener(lsDef);
    // Detect X or ALT-F4 or something that kills this window...
    shell.addShellListener(new ShellAdapter() {

        public void shellClosed(ShellEvent e) {
            cancel();
        }
    });
    getData();
    BaseStepDialog.setSize(shell);
    shell.open();
    props.setDialogSize(shell, "JobFileExistsDialogSize");
    while (!shell.isDisposed()) {
        if (!display.readAndDispatch()) {
            display.sleep();
        }
    }
    return jobEntry;
}
Also used : FormLayout(org.eclipse.swt.layout.FormLayout) FormData(org.eclipse.swt.layout.FormData) ShellAdapter(org.eclipse.swt.events.ShellAdapter) Listener(org.eclipse.swt.widgets.Listener) ModifyListener(org.eclipse.swt.events.ModifyListener) ModifyListener(org.eclipse.swt.events.ModifyListener) SelectionAdapter(org.eclipse.swt.events.SelectionAdapter) Label(org.eclipse.swt.widgets.Label) ShellEvent(org.eclipse.swt.events.ShellEvent) Text(org.eclipse.swt.widgets.Text) TextVar(org.pentaho.di.ui.core.widget.TextVar) Shell(org.eclipse.swt.widgets.Shell) ModifyEvent(org.eclipse.swt.events.ModifyEvent) FileSystemException(org.apache.commons.vfs2.FileSystemException) Button(org.eclipse.swt.widgets.Button) VfsFileChooserDialog(org.pentaho.vfs.ui.VfsFileChooserDialog) SelectionEvent(org.eclipse.swt.events.SelectionEvent) Event(org.eclipse.swt.widgets.Event) ModifyEvent(org.eclipse.swt.events.ModifyEvent) ShellEvent(org.eclipse.swt.events.ShellEvent) SelectionEvent(org.eclipse.swt.events.SelectionEvent) FileObject(org.apache.commons.vfs2.FileObject) FormAttachment(org.eclipse.swt.layout.FormAttachment) Display(org.eclipse.swt.widgets.Display)

Aggregations

VfsFileChooserDialog (org.pentaho.vfs.ui.VfsFileChooserDialog)14 FileObject (org.apache.commons.vfs2.FileObject)11 KettleException (org.pentaho.di.core.exception.KettleException)8 IOException (java.io.IOException)7 ErrorDialog (org.pentaho.di.ui.core.dialog.ErrorDialog)7 FileSystemException (org.apache.commons.vfs2.FileSystemException)4 SelectionAdapter (org.eclipse.swt.events.SelectionAdapter)4 SelectionEvent (org.eclipse.swt.events.SelectionEvent)4 ModifyEvent (org.eclipse.swt.events.ModifyEvent)3 ModifyListener (org.eclipse.swt.events.ModifyListener)3 ShellAdapter (org.eclipse.swt.events.ShellAdapter)3 ShellEvent (org.eclipse.swt.events.ShellEvent)3 FormAttachment (org.eclipse.swt.layout.FormAttachment)3 FormData (org.eclipse.swt.layout.FormData)3 FormLayout (org.eclipse.swt.layout.FormLayout)3 Button (org.eclipse.swt.widgets.Button)3 Display (org.eclipse.swt.widgets.Display)3 Event (org.eclipse.swt.widgets.Event)3 Label (org.eclipse.swt.widgets.Label)3 Listener (org.eclipse.swt.widgets.Listener)3