use of org.talend.commons.runtime.model.repository.ERepositoryStatus in project tmdm-studio-se by Talend.
the class RepositoryResourceUtilTest method testIsLockedViewObject.
@Test
public void testIsLockedViewObject() {
IRepositoryViewObject mockViewObject = mock(IRepositoryViewObject.class);
IProxyRepositoryFactory repositoryFactory = mock(IProxyRepositoryFactory.class);
when(CoreRuntimePlugin.getInstance().getProxyRepositoryFactory()).thenReturn(repositoryFactory);
// true
when(repositoryFactory.getStatus(mockViewObject)).thenReturn(ERepositoryStatus.LOCK_BY_OTHER);
boolean islockedViewObject = RepositoryResourceUtil.isLockedViewObject(mockViewObject);
assertTrue(islockedViewObject);
when(repositoryFactory.getStatus(mockViewObject)).thenReturn(ERepositoryStatus.LOCK_BY_USER);
islockedViewObject = RepositoryResourceUtil.isLockedViewObject(mockViewObject);
assertTrue(islockedViewObject);
// false
ERepositoryStatus[] statuss = { ERepositoryStatus.DEFAULT, ERepositoryStatus.DELETED, ERepositoryStatus.EDITABLE, ERepositoryStatus.ERROR, ERepositoryStatus.NEW, ERepositoryStatus.NOT_UP_TO_DATE, ERepositoryStatus.READ_ONLY, ERepositoryStatus.WARN };
for (ERepositoryStatus status : statuss) {
when(repositoryFactory.getStatus(mockViewObject)).thenReturn(status);
islockedViewObject = RepositoryResourceUtil.isLockedViewObject(mockViewObject);
assertFalse(islockedViewObject);
}
}
use of org.talend.commons.runtime.model.repository.ERepositoryStatus in project tmdm-studio-se by Talend.
the class RepositoryResourceUtilTest method testIsLockedAndEdited.
@Test
public void testIsLockedAndEdited() throws Exception {
IRepositoryViewObject mockViewObject = mock(IRepositoryViewObject.class);
IProxyRepositoryFactory repositoryFactory = mock(IProxyRepositoryFactory.class);
when(CoreRuntimePlugin.getInstance().getProxyRepositoryFactory()).thenReturn(repositoryFactory);
// true
when(repositoryFactory.getStatus(mockViewObject)).thenReturn(ERepositoryStatus.LOCK_BY_OTHER);
boolean islockedViewObject = RepositoryResourceUtil.isLockedAndEdited(mockViewObject);
assertTrue(islockedViewObject);
when(repositoryFactory.getStatus(mockViewObject)).thenReturn(ERepositoryStatus.LOCK_BY_USER);
PowerMockito.mockStatic(RepositoryResourceUtil.class);
PowerMockito.doCallRealMethod().when(RepositoryResourceUtil.class, "isLockedAndEdited", (IRepositoryViewObject) Mockito.anyObject());
when(RepositoryResourceUtil.isOpenedInEditor(mockViewObject)).thenReturn(mock(IEditorReference.class));
islockedViewObject = RepositoryResourceUtil.isLockedAndEdited(mockViewObject);
assertTrue(islockedViewObject);
// false
when(RepositoryResourceUtil.isOpenedInEditor(mockViewObject)).thenReturn(null);
islockedViewObject = RepositoryResourceUtil.isLockedAndEdited(mockViewObject);
assertFalse(islockedViewObject);
// false
ERepositoryStatus[] statuss = { ERepositoryStatus.DEFAULT, ERepositoryStatus.DELETED, ERepositoryStatus.EDITABLE, ERepositoryStatus.ERROR, ERepositoryStatus.NEW, ERepositoryStatus.NOT_UP_TO_DATE, ERepositoryStatus.READ_ONLY, ERepositoryStatus.WARN };
for (ERepositoryStatus status : statuss) {
when(repositoryFactory.getStatus(mockViewObject)).thenReturn(status);
islockedViewObject = RepositoryResourceUtil.isLockedAndEdited(mockViewObject);
assertFalse(islockedViewObject);
}
}
use of org.talend.commons.runtime.model.repository.ERepositoryStatus in project tdq-studio-se by Talend.
the class DQRepositoryViewLabelProvider method getImage.
@Override
public Image getImage(Object element) {
Image image = super.getImage(element);
if (element instanceof IRepositoryNode) {
IRepositoryNode node = (IRepositoryNode) element;
if (node instanceof ReportAnalysisRepNode) {
image = ImageLib.getImage(ImageLib.ANALYSIS_OBJECT);
} else if (node instanceof ExchangeCategoryRepNode || node instanceof ExchangeComponentRepNode) {
image = ImageLib.getImage(ImageLib.EXCHANGE);
} else if (node instanceof RecycleBinRepNode) {
image = ImageLib.getImage(ImageLib.RECYCLEBIN_EMPTY);
} else {
IRepositoryViewObject viewObject = node.getObject();
ENodeType type = node.getType();
if (type.equals(ENodeType.SYSTEM_FOLDER)) {
if (EResourceConstant.REFERENCED_PROJECT.getName().equals(node.getProperties(EProperties.LABEL))) {
image = ImageLib.getImage(ImageLib.REFERENCED_PROJECT);
} else {
String label = viewObject.getLabel();
if (label.equals(EResourceConstant.DATA_PROFILING.getName())) {
image = ImageLib.getImage(ImageLib.DATA_PROFILING);
} else if (label.equals(EResourceConstant.METADATA.getName())) {
image = ImageLib.getImage(ImageLib.METADATA);
} else if (node instanceof DBConnectionFolderRepNode) {
image = ImageLib.getImage(ImageLib.CONNECTION);
} else if (label.equals(EResourceConstant.FILEDELIMITED.getName())) {
image = ImageLib.getImage(ImageLib.FILE_DELIMITED);
} else if (label.equals(EResourceConstant.LIBRARIES.getName())) {
image = ImageLib.getImage(ImageLib.LIBRARIES);
} else if (label.equals(EResourceConstant.EXCHANGE.getName())) {
image = ImageLib.getImage(ImageLib.EXCHANGE);
} else if (label.equals(EResourceConstant.HADOOP_CLUSTER.getName())) {
image = ImageLib.getImage(ImageLib.HADOOP_CLUSTER);
} else if (label.equals(EResourceConstant.CONTEXT.getName())) {
image = ImageLib.getImage(ImageLib.CONTEXT);
} else {
image = ImageLib.getImage(ImageLib.FOLDERNODE_IMAGE);
}
}
} else if (type.equals(ENodeType.SIMPLE_FOLDER)) {
image = ImageLib.getImage(ImageLib.FOLDERNODE_IMAGE);
} else if (type.equals(ENodeType.REFERENCED_PROJECT)) {
image = ImageLib.getImage(ImageLib.REFERENCED_PROJECT);
} else if (type.equals(ENodeType.REPOSITORY_ELEMENT)) {
// TDQ-7560 when the image is a overlay image,use originalImageName to get the corresponding one.
String originalImageName = null;
if (node instanceof DBConnectionRepNode) {
originalImageName = ImageLib.TD_DATAPROVIDER;
if (!RepositoryNodeHelper.isSupportedConnection(node) || isNeedAddDriverConnection(node)) {
image = ImageLib.createErrorIcon(originalImageName);
} else if (isInvalidJDBCConnection(node)) {
image = ImageLib.createInvalidIcon(originalImageName);
} else {
image = ImageLib.getImage(originalImageName);
}
} else if (node instanceof DFConnectionRepNode) {
originalImageName = ImageLib.FILE_DELIMITED;
} else if (node instanceof AnalysisRepNode) {
originalImageName = ImageLib.ANALYSIS_OBJECT;
image = addWarnIconIfNeeded(node, originalImageName);
} else if (node instanceof ReportRepNode) {
originalImageName = ImageLib.REPORT_OBJECT;
image = addWarnIconIfNeeded(node, originalImageName);
} else if (node instanceof SysIndicatorDefinitionRepNode) {
originalImageName = ImageLib.IND_DEFINITION;
} else if (node instanceof PatternRepNode) {
originalImageName = ImageLib.PATTERN_REG;
} else if (node instanceof RuleRepNode) {
if (((RuleRepNode) node).getRule() instanceof MatchRuleDefinition) {
originalImageName = ImageLib.MATCH_RULE_ICON;
} else {
originalImageName = ImageLib.DQ_RULE;
}
} else if (node instanceof SourceFileRepNode) {
originalImageName = ImageLib.SOURCE_FILE;
} else if (node instanceof HadoopClusterConnectionRepNode) {
originalImageName = ImageLib.HADOOP_CLUSTER;
} else if (node instanceof HDFSOfHCConnectionNode) {
originalImageName = ImageLib.HDFS;
} else if (node instanceof HiveOfHCConnectionNode) {
originalImageName = ImageLib.HIVE_LINK;
} else if (node instanceof ExchangeCategoryRepNode || node instanceof ExchangeComponentRepNode) {
originalImageName = ImageLib.EXCHANGE;
} else if (node instanceof ContextRepNode) {
originalImageName = ImageLib.CONTEXT;
} else if (node instanceof RepositoryNode) {
// MOD qiongli 2011-1-18 get image for nodes in recycle bin
Image imageNode = getImageByContentType((RepositoryNode) node);
if (image != null) {
image = imageNode;
}
}
if (originalImageName != null && !(node instanceof DBConnectionRepNode || node instanceof AnalysisRepNode || node instanceof ReportRepNode)) {
image = ImageLib.getImage(originalImageName);
}
// exchange folder did not contain viewObject.
if (viewObject != null) {
// MOD yyi 2011-04-07 19696: "Lock element"
ERepositoryStatus status = ProxyRepositoryFactory.getInstance().getStatus(viewObject);
Context ctx = CoreRuntimePlugin.getInstance().getContext();
RepositoryContext rc = (RepositoryContext) ctx.getProperty(Context.REPOSITORY_CONTEXT_KEY);
// will be enhanced later by TDI-29265.
if (rc.isEditableAsReadOnly()) {
if (status == ERepositoryStatus.LOCK_BY_USER) {
status = ERepositoryStatus.DEFAULT;
}
}
if (ERepositoryStatus.DEFAULT != status && originalImageName != null) {
if (ERepositoryStatus.LOCK_BY_USER == status) {
image = ImageLib.createLockedByOwnIcon(originalImageName);
} else if (ERepositoryStatus.LOCK_BY_OTHER == status) {
image = ImageLib.createLockedByOtherIcon(originalImageName);
}
}
}
} else if (type.equals(ENodeType.TDQ_REPOSITORY_ELEMENT)) {
if (node instanceof DBCatalogRepNode) {
image = ImageLib.getImage(ImageLib.CATALOG);
} else if (node instanceof DBSchemaRepNode) {
image = ImageLib.getImage(ImageLib.SCHEMA);
} else if (node instanceof DBTableFolderRepNode) {
image = ImageLib.getImage(ImageLib.FOLDERNODE_IMAGE);
} else if (node instanceof DBViewFolderRepNode) {
image = ImageLib.getImage(ImageLib.FOLDERNODE_IMAGE);
} else if (node instanceof DBTableRepNode || node instanceof DFTableRepNode) {
image = ImageLib.getImage(ImageLib.TABLE);
} else if (node instanceof DBViewRepNode) {
image = ImageLib.getImage(ImageLib.VIEW);
} else if (node instanceof DBColumnRepNode) {
if (((DBColumnRepNode) node).isKey()) {
image = ImageLib.getImage(ImageLib.PK_COLUMN);
} else {
image = ImageLib.getImage(ImageLib.TD_COLUMN);
}
} else if (node instanceof DFColumnRepNode) {
image = ImageLib.getImage(ImageLib.TD_COLUMN);
} else if (node instanceof DBColumnFolderRepNode || node instanceof DFColumnFolderRepNode) {
image = ImageLib.getImage(ImageLib.FOLDERNODE_IMAGE);
} else if (node instanceof JrxmlTempleteRepNode) {
image = ImageLib.getImage(ImageLib.JRXML_ICON);
}
}
}
}
return image;
}
use of org.talend.commons.runtime.model.repository.ERepositoryStatus in project tdq-studio-se by Talend.
the class DQRepositoryViewLabelProvider method getForeground.
/*
* (non-Javadoc)
*
* @see org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider#getForeground(java.lang.Object)
*/
@Override
public Color getForeground(Object element) {
RepositoryNode node = (RepositoryNode) element;
if (node instanceof RecycleBinRepNode) {
return super.getForeground(element);
}
if (node.getObject() != null) {
switch(node.getType()) {
case REFERENCED_PROJECT:
return STABLE_PRIMARY_ENTRY_COLOR;
case STABLE_SYSTEM_FOLDER:
case SYSTEM_FOLDER:
if (node.getContentType() == ERepositoryObjectType.TDQ_DATA_PROFILING || node.getContentType() == ERepositoryObjectType.METADATA || node.getContentType() == ERepositoryObjectType.TDQ_SYSTEM_INDICATORS || node.getContentType() == ERepositoryObjectType.TDQ_PATTERN_REGEX) {
return STABLE_PRIMARY_ENTRY_COLOR;
}
return STABLE_SECONDARY_ENTRY_COLOR;
default:
ERepositoryStatus repositoryStatus = node.getObject().getRepositoryStatus();
if (repositoryStatus == ERepositoryStatus.LOCK_BY_OTHER) {
return LOCKED_ENTRY;
}
if (org.talend.core.PluginChecker.isRefProjectLoaded()) {
IReferencedProjectService service = (IReferencedProjectService) GlobalServiceRegister.getDefault().getService(IReferencedProjectService.class);
if (service != null && service.isMergeRefProject()) {
IRepositoryViewObject object = node.getObject();
if (object != null) {
org.talend.core.model.properties.Project mainProject = ProjectManager.getInstance().getCurrentProject().getEmfProject();
String projectLabel = object.getProjectLabel();
if (!mainProject.getLabel().equals(projectLabel)) {
return MERGED_REFERENCED_ITEMS_COLOR;
}
}
}
}
}
}
return super.getForeground(element);
}
use of org.talend.commons.runtime.model.repository.ERepositoryStatus in project tmdm-studio-se by Talend.
the class OpenObjectAction method openItem.
private void openItem(IRepositoryViewObject viewObject) {
Item item = viewObject.getProperty().getItem();
item = RepositoryResourceUtil.assertItem(item);
IRepositoryNodeConfiguration configuration = RepositoryNodeConfigurationManager.getConfiguration(item);
if (configuration != null) {
IRepositoryNodeActionProvider actionProvider = configuration.getActionProvider();
if (actionProvider != null) {
IRepositoryViewEditorInput editorInput = actionProvider.getOpenEditorInput(viewObject);
if (editorInput != null) {
if (page == null) {
this.page = getCommonViewer().getCommonNavigator().getSite().getWorkbenchWindow().getActivePage();
}
// do extra action
MDMServerObject serverObject = ((MDMServerObjectItem) item).getMDMServerObject();
if (!checkMissingJar(serverObject)) {
return;
}
boolean selected = doSelectServer(item, editorInput);
if (!selected) {
return;
}
try {
// svn lock
ERepositoryStatus status = factory.getStatus(item);
boolean isEditable = factory.isEditableAndLockIfPossible(item);
if (isEditable) {
getCommonViewer().refresh(viewObject);
}
//
editorInput.setReadOnly(status == ERepositoryStatus.LOCK_BY_OTHER || status == ERepositoryStatus.READ_ONLY || !isEditable);
if (!editorInput.isReadOnly()) {
editorInput.setReadOnly(item.getState().isDeleted());
}
updateEditorInputVersionInfo(editorInput, viewObject);
activeEditor = this.page.openEditor(editorInput, editorInput.getEditorId());
if (marker != null) {
IDE.gotoMarker(activeEditor, marker);
}
} catch (PartInitException e) {
log.error(e.getMessage(), e);
}
} else {
AbstractRepositoryAction openAction = actionProvider.getOpenAction(viewObject);
if (openAction != null) {
openAction.selectionChanged(getStructuredSelection());
openAction.run();
}
}
}
}
}
Aggregations