Search in sources :

Example 1 with ImportRulesDialog

use of org.pentaho.di.ui.imp.ImportRulesDialog in project pentaho-kettle by pentaho.

the class Spoon method importDirectoryToRepository.

public void importDirectoryToRepository() {
    FileDialog dialog = new FileDialog(shell, SWT.OPEN | SWT.MULTI);
    dialog.setText(BaseMessages.getString(PKG, "Spoon.SelectAnXMLFileToImportFrom.Message"));
    if (dialog.open() == null) {
        return;
    }
    // Ask for a set of import rules
    // 
    MessageBox box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.APPLICATION_MODAL | SWT.SHEET | SWT.YES | SWT.NO | SWT.CANCEL);
    box.setText(BaseMessages.getString(PKG, "Spoon.QuestionApplyImportRules.Title"));
    box.setMessage(BaseMessages.getString(PKG, "Spoon.QuestionApplyImportRules.Message"));
    int answer = box.open();
    if (answer == SWT.CANCEL) {
        return;
    }
    // Get the import rules
    // 
    ImportRules importRules = new ImportRules();
    if (answer == SWT.YES) {
        ImportRulesDialog importRulesDialog = new ImportRulesDialog(shell, importRules);
        if (!importRulesDialog.open()) {
            return;
        }
    }
    // Ask for a destination in the repository...
    // 
    SelectDirectoryDialog sdd = new SelectDirectoryDialog(shell, SWT.NONE, rep);
    RepositoryDirectoryInterface baseDirectory = sdd.open();
    if (baseDirectory == null) {
        return;
    }
    // Finally before importing, ask for a version comment (if applicable)
    // 
    String fullPath = baseDirectory.getPath() + "/foo.ktr";
    String versionComment = null;
    boolean versionOk = false;
    while (!versionOk) {
        versionComment = RepositorySecurityUI.getVersionComment(shell, rep, "Import of files into [" + baseDirectory.getPath() + "]", fullPath, true);
        // if the version comment is null, the user hit cancel, exit.
        if (versionComment == null) {
            return;
        }
        if (Utils.isEmpty(versionComment) && rep.getSecurityProvider().isVersionCommentMandatory()) {
            if (!RepositorySecurityUI.showVersionCommentMandatoryDialog(shell)) {
                versionOk = true;
            }
        } else {
            versionOk = true;
        }
    }
    String[] filenames = dialog.getFileNames();
    if (filenames.length > 0) {
        RepositoryImportProgressDialog ripd = new RepositoryImportProgressDialog(shell, SWT.NONE, rep, dialog.getFilterPath(), filenames, baseDirectory, versionComment, importRules);
        ripd.open();
        refreshTree();
    }
}
Also used : ImportRules(org.pentaho.di.imp.ImportRules) RepositoryDirectoryInterface(org.pentaho.di.repository.RepositoryDirectoryInterface) ImportRulesDialog(org.pentaho.di.ui.imp.ImportRulesDialog) RepositoryImportProgressDialog(org.pentaho.di.ui.repository.dialog.RepositoryImportProgressDialog) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) KettlePropertiesFileDialog(org.pentaho.di.ui.core.dialog.KettlePropertiesFileDialog) FileDialog(org.eclipse.swt.widgets.FileDialog) SelectDirectoryDialog(org.pentaho.di.ui.repository.dialog.SelectDirectoryDialog) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) MessageBox(org.eclipse.swt.widgets.MessageBox)

Example 2 with ImportRulesDialog

use of org.pentaho.di.ui.imp.ImportRulesDialog in project pentaho-kettle by pentaho.

the class Spoon method exportRepositoryDirectory.

/**
 * @param directoryToExport
 *          set to null to export the complete repository
 * @return false if we want to stop processing. true if we need to continue.
 */
public boolean exportRepositoryDirectory(RepositoryDirectory directoryToExport) {
    FileDialog dialog = this.getExportFileDialog();
    if (dialog.open() == null) {
        return false;
    }
    String filename = dialog.getFilterPath() + Const.FILE_SEPARATOR + dialog.getFileName();
    log.logBasic(BaseMessages.getString(PKG, "Spoon.Log.Exporting"), BaseMessages.getString(PKG, "Spoon.Log.ExportObjectsToFile", filename));
    // check if file is exists
    MessageBox box = RepositoryExportProgressDialog.checkIsFileIsAcceptable(shell, log, filename);
    int answer = (box == null) ? SWT.OK : box.open();
    if (answer != SWT.OK) {
        // seems user don't want to overwrite file...
        return false;
    }
    // ok, let's show one more modal dialog, users like modal dialogs.
    // They feel that their opinion are important to us.
    box = new MessageBox(shell, SWT.ICON_QUESTION | SWT.APPLICATION_MODAL | SWT.SHEET | SWT.YES | SWT.NO | SWT.CANCEL);
    box.setText(BaseMessages.getString(PKG, "Spoon.QuestionApplyImportRulesToExport.Title"));
    box.setMessage(BaseMessages.getString(PKG, "Spoon.QuestionApplyImportRulesToExport.Message"));
    answer = box.open();
    if (answer == SWT.CANCEL) {
        return false;
    }
    // Get the import rules
    // 
    ImportRules importRules = new ImportRules();
    if (answer == SWT.YES) {
        ImportRulesDialog importRulesDialog = new ImportRulesDialog(shell, importRules);
        if (!importRulesDialog.open()) {
            return false;
        }
    }
    RepositoryExportProgressDialog repd = new RepositoryExportProgressDialog(shell, rep, directoryToExport, filename, importRules);
    repd.open();
    return true;
}
Also used : ImportRules(org.pentaho.di.imp.ImportRules) ImportRulesDialog(org.pentaho.di.ui.imp.ImportRulesDialog) ValueMetaString(org.pentaho.di.core.row.value.ValueMetaString) KettlePropertiesFileDialog(org.pentaho.di.ui.core.dialog.KettlePropertiesFileDialog) FileDialog(org.eclipse.swt.widgets.FileDialog) Point(org.pentaho.di.core.gui.Point) KettleExtensionPoint(org.pentaho.di.core.extension.KettleExtensionPoint) RepositoryExportProgressDialog(org.pentaho.di.ui.repository.dialog.RepositoryExportProgressDialog) MessageBox(org.eclipse.swt.widgets.MessageBox)

Aggregations

FileDialog (org.eclipse.swt.widgets.FileDialog)2 MessageBox (org.eclipse.swt.widgets.MessageBox)2 KettleExtensionPoint (org.pentaho.di.core.extension.KettleExtensionPoint)2 Point (org.pentaho.di.core.gui.Point)2 ValueMetaString (org.pentaho.di.core.row.value.ValueMetaString)2 ImportRules (org.pentaho.di.imp.ImportRules)2 KettlePropertiesFileDialog (org.pentaho.di.ui.core.dialog.KettlePropertiesFileDialog)2 ImportRulesDialog (org.pentaho.di.ui.imp.ImportRulesDialog)2 RepositoryDirectoryInterface (org.pentaho.di.repository.RepositoryDirectoryInterface)1 RepositoryExportProgressDialog (org.pentaho.di.ui.repository.dialog.RepositoryExportProgressDialog)1 RepositoryImportProgressDialog (org.pentaho.di.ui.repository.dialog.RepositoryImportProgressDialog)1 SelectDirectoryDialog (org.pentaho.di.ui.repository.dialog.SelectDirectoryDialog)1