public void createPartition() {
   try {
     PartitionSchema partition = new PartitionSchema();
     PartitionSchemaDialog partitionDialog =
         new PartitionSchemaDialog(shell, partition, repository.readDatabases(), variableSpace);
     if (partitionDialog.open()) {
       // See if this partition already exists...
       ObjectId idPartition = repository.getPartitionSchemaID(partition.getName());
       if (idPartition == null) {
         if (partition.getName() != null && !partition.getName().equals("")) {
           repository.insertLogEntry(
               BaseMessages.getString(
                   RepositoryExplorer.class,
                   "PartitionsController.Message.CreatingPartition",
                   partition.getName()));
           repository.save(partition, Const.VERSION_COMMENT_INITIAL_VERSION, null);
         } else {
           MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
           mb.setMessage(
               BaseMessages.getString(
                   PKG, "RepositoryExplorerDialog.Partition.Edit.InvalidName.Message"));
           mb.setText(
               BaseMessages.getString(PKG, "RepositoryExplorerDialog.Partition.Create.Title"));
           mb.open();
         }
       } else {
         MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
         mb.setMessage(
             BaseMessages.getString(
                 PKG, "RepositoryExplorerDialog.Partition.Create.AlreadyExists.Message"));
         mb.setText(
             BaseMessages.getString(
                 PKG, "RepositoryExplorerDialog.Partition.Create.AlreadyExists.Title"));
         mb.open();
       }
     }
   } catch (KettleException e) {
     new ErrorDialog(
         shell,
         BaseMessages.getString(
             PKG, "RepositoryExplorerDialog.Partition.Create.UnexpectedError.Title"),
         BaseMessages.getString(
             PKG, "RepositoryExplorerDialog.Partition.Create.UnexpectedError.Message"),
         e);
   } finally {
     refreshPartitions();
   }
 }
  public void editPartition() {
    String partitionSchemaName = "";
    try {
      Collection<UIPartition> partitions = partitionsTable.getSelectedItems();

      if (partitions != null && !partitions.isEmpty()) {
        // Grab the first item in the list & send it to the partition schema dialog
        PartitionSchema partitionSchema =
            ((UIPartition) partitions.toArray()[0]).getPartitionSchema();
        partitionSchemaName = partitionSchema.getName();
        // Make sure the partition already exists
        ObjectId partitionId = repository.getPartitionSchemaID(partitionSchema.getName());
        if (partitionId == null) {
          MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
          mb.setMessage(
              BaseMessages.getString(
                  PKG,
                  "RepositoryExplorerDialog.Partition.DoesNotExists.Message",
                  partitionSchemaName));
          mb.setText(BaseMessages.getString(PKG, "RepositoryExplorerDialog.Partition.Edit.Title"));
          mb.open();
        } else {
          PartitionSchemaDialog partitionDialog =
              new PartitionSchemaDialog(
                  shell, partitionSchema, repository.readDatabases(), variableSpace);
          if (partitionDialog.open()) {
            if (partitionSchema.getName() != null && !partitionSchema.getName().equals("")) {
              repository.insertLogEntry(
                  BaseMessages.getString(
                      RepositoryExplorer.class,
                      "PartitionsController.Message.UpdatingPartition",
                      partitionSchema.getName()));
              repository.save(partitionSchema, Const.VERSION_COMMENT_EDIT_VERSION, null);
            } else {
              MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
              mb.setMessage(
                  BaseMessages.getString(
                      PKG, "RepositoryExplorerDialog.Partition.Edit.InvalidName.Message"));
              mb.setText(
                  BaseMessages.getString(PKG, "RepositoryExplorerDialog.Partition.Edit.Title"));
              mb.open();
            }
          }
        }
      } else {
        MessageBox mb = new MessageBox(shell, SWT.ICON_ERROR | SWT.OK);
        mb.setMessage(
            BaseMessages.getString(
                PKG, "RepositoryExplorerDialog.Partition.NoItemSelected.Message"));
        mb.setText(BaseMessages.getString(PKG, "RepositoryExplorerDialog.Partition.Edit.Title"));
        mb.open();
      }
    } catch (KettleException e) {
      new ErrorDialog(
          shell,
          BaseMessages.getString(PKG, "RepositoryExplorerDialog.Partition.Edit.Title"),
          BaseMessages.getString(
                  PKG, "RepositoryExplorerDialog.Partition.Edit.UnexpectedError.Message")
              + partitionSchemaName
              + "]",
          e);
    } finally {
      refreshPartitions();
    }
  }