use of org.pentaho.di.base.AbstractMeta in project pentaho-kettle by pentaho.
the class PurRepository_MoveAndRename_IT method moveAndRename_FailsIfANameConflictOccurs.
private void moveAndRename_FailsIfANameConflictOccurs(Assistant assistant) throws Exception {
final String fileName = "moveAndRename_FailsIfANameConflictOccurs";
final String renamed = fileName + "_renamed";
AbstractMeta meta = assistant.createNew();
AbstractMeta anotherMeta = assistant.createNew();
RepositoryDirectoryInterface directory = getPublicDir();
assistant.save(meta, fileName, directory);
RepositoryDirectoryInterface destFolder = getDirInsidePublic(fileName);
assistant.save(anotherMeta, renamed, destFolder);
assistant.rename(meta, destFolder, renamed);
}
use of org.pentaho.di.base.AbstractMeta in project pentaho-kettle by pentaho.
the class PurRepository_MoveAndRename_IT method rename_CreatesNewRevision.
private void rename_CreatesNewRevision(Assistant assistant) throws Exception {
final String initial = "rename_CreatesNewRevision";
final String renamed = initial + "_renamed";
AbstractMeta meta = assistant.createNew();
assistant.save(meta, initial, getPublicDir());
List<VersionSummary> historyBefore = unifiedRepository.getVersionSummaries(meta.getObjectId().getId());
long before = System.currentTimeMillis();
assistant.rename(meta, renamed);
long after = System.currentTimeMillis();
List<VersionSummary> historyAfter = unifiedRepository.getVersionSummaries(meta.getObjectId().getId());
assertEquals(historyBefore.size() + 1, historyAfter.size());
long newRevisionTs = historyAfter.get(historyAfter.size() - 1).getDate().getTime();
assertTrue(String.format("%d <= %d <= %d", before, newRevisionTs, after), (before <= newRevisionTs) && (newRevisionTs <= after));
}
use of org.pentaho.di.base.AbstractMeta in project pentaho-kettle by pentaho.
the class SpoonTabsDelegate method renameTabs.
/**
* Rename the tabs
*/
public void renameTabs() {
List<TabMapEntry> list = new ArrayList<TabMapEntry>(tabMap);
for (TabMapEntry entry : list) {
if (entry.getTabItem().isDisposed()) {
// this should not be in the map, get rid of it.
tabMap.remove(entry.getObjectName());
continue;
}
// TabItem before = entry.getTabItem();
// PDI-1683: need to get the String here, otherwise using only the "before" instance below, the reference gets
// changed and result is always the same
// String beforeText=before.getText();
//
Object managedObject = entry.getObject().getManagedObject();
if (managedObject != null) {
if (entry.getObject() instanceof AbstractGraph) {
AbstractMeta meta = (AbstractMeta) managedObject;
String tabText = makeTabName(meta, entry.isShowingLocation());
entry.getTabItem().setText(tabText);
String toolTipText = BaseMessages.getString(PKG, "Spoon.TabTrans.Tooltip", tabText);
if (entry.getObject() instanceof JobGraph) {
toolTipText = BaseMessages.getString(PKG, "Spoon.TabJob.Tooltip", tabText);
}
if (Const.isWindows() && !Utils.isEmpty(meta.getFilename())) {
toolTipText += Const.CR + Const.CR + meta.getFilename();
}
entry.getTabItem().setToolTipText(toolTipText);
}
}
}
spoon.setShellText();
}
use of org.pentaho.di.base.AbstractMeta in project pentaho-kettle by pentaho.
the class SpoonTabsDelegate method tabClose.
public boolean tabClose(TabItem item, boolean force) throws KettleException {
// Try to find the tab-item that's being closed.
boolean createPerms = !RepositorySecurityUI.verifyOperations(Spoon.getInstance().getShell(), Spoon.getInstance().getRepository(), false, RepositoryOperation.MODIFY_TRANSFORMATION, RepositoryOperation.MODIFY_JOB);
boolean close = true;
boolean canSave = true;
for (TabMapEntry entry : tabMap) {
if (item.equals(entry.getTabItem())) {
final TabItemInterface itemInterface = entry.getObject();
final Object managedObject = itemInterface.getManagedObject();
if (!force) {
if (managedObject != null && AbstractMeta.class.isAssignableFrom(managedObject.getClass())) {
canSave = !((AbstractMeta) managedObject).hasMissingPlugins();
}
if (canSave) {
// Can we close this tab? Only allow users with create content perms to save
if (!itemInterface.canBeClosed() && createPerms) {
int reply = itemInterface.showChangedWarning();
if (reply == SWT.YES) {
close = itemInterface.applyChanges();
} else {
if (reply == SWT.CANCEL) {
close = false;
} else {
close = true;
}
}
}
}
}
String beforeCloseId = null;
String afterCloseId = null;
if (itemInterface instanceof TransGraph) {
beforeCloseId = KettleExtensionPoint.TransBeforeClose.id;
afterCloseId = KettleExtensionPoint.TransAfterClose.id;
} else if (itemInterface instanceof JobGraph) {
beforeCloseId = KettleExtensionPoint.JobBeforeClose.id;
afterCloseId = KettleExtensionPoint.JobAfterClose.id;
}
if (beforeCloseId != null) {
try {
ExtensionPointHandler.callExtensionPoint(log, beforeCloseId, managedObject);
} catch (KettleException e) {
// prevent tab close
close = false;
}
}
//
if (close) {
if (itemInterface instanceof TransGraph) {
TransMeta transMeta = (TransMeta) managedObject;
spoon.delegates.trans.closeTransformation(transMeta);
spoon.refreshTree();
// spoon.refreshCoreObjects();
} else if (itemInterface instanceof JobGraph) {
JobMeta jobMeta = (JobMeta) managedObject;
spoon.delegates.jobs.closeJob(jobMeta);
spoon.refreshTree();
// spoon.refreshCoreObjects();
} else if (itemInterface instanceof SpoonBrowser) {
this.removeTab(entry);
spoon.refreshTree();
} else if (itemInterface instanceof Composite) {
Composite comp = (Composite) itemInterface;
if (comp != null && !comp.isDisposed()) {
comp.dispose();
}
}
if (afterCloseId != null) {
try {
ExtensionPointHandler.callExtensionPoint(log, afterCloseId, managedObject);
} catch (KettleException e) {
// fails gracefully... what else could we do?
}
}
}
break;
}
}
return close;
}
use of org.pentaho.di.base.AbstractMeta in project pentaho-kettle by pentaho.
the class DelegatesPrivateDatabasesTest method saveAndLoad_SetIsNotEmpty.
@Test
public void saveAndLoad_SetIsNotEmpty() throws Exception {
meta.setPrivateDatabases(Collections.singleton(DB_NAME));
AbstractMeta restored = (AbstractMeta) delegate.dataNodeToElement(delegate.elementToDataNode(meta));
assertEquals(meta.getPrivateDatabases(), restored.getPrivateDatabases());
}
Aggregations