Search in sources :

Example 11 with ContainerItem

use of org.talend.mdm.repository.model.mdmproperties.ContainerItem in project tmdm-studio-se by Talend.

the class RepositoryResourceUtil method createFolderViewObject.

public static IRepositoryViewObject createFolderViewObject(ERepositoryObjectType type, String folderName, Item pItem, boolean isSystem) {
    Property prop = PropertiesFactory.eINSTANCE.createProperty();
    prop.setId(EcoreUtil.generateUUID());
    // 
    ContainerItem item = MdmpropertiesFactory.eINSTANCE.createContainerItem();
    isSystem = isSystemFolder(pItem, folderName);
    item.setType(isSystem ? FolderType.STABLE_SYSTEM_FOLDER_LITERAL : FolderType.FOLDER_LITERAL);
    item.setLabel(folderName);
    item.setRepObjType(type);
    ItemState itemState = PropertiesFactory.eINSTANCE.createItemState();
    itemState.setDeleted(false);
    item.setState(itemState);
    // 
    prop.setItem(item);
    prop.setLabel(folderName);
    try {
        if (!isSystem) {
            Project project = ProjectManager.getInstance().getCurrentProject();
            IProject fsProject = ResourceUtils.getProject(project);
            ItemState state = pItem.getState();
            itemState.setPath(state.getPath() + IPath.SEPARATOR + folderName);
            String path = ERepositoryObjectType.getFolderName(type);
            if (!path.isEmpty()) {
                path += itemState.getPath();
            }
            IFolder folder = fsProject.getFolder(path);
            if (!folder.exists()) {
                Path parentPath = new Path(pItem.getState().getPath());
                ProxyRepositoryFactory.getInstance().createFolder(project, type, parentPath, folderName);
            }
        } else {
            itemState.setPath(folderName);
        }
    } catch (PersistenceException e) {
        log.error(e.getMessage(), e);
    }
    FolderRepositoryObject containerRepositoryObject = new FolderRepositoryObject(prop);
    // 
    ContainerCacheService.putContainer(containerRepositoryObject);
    // 
    return containerRepositoryObject;
}
Also used : Path(org.eclipse.core.runtime.Path) IPath(org.eclipse.core.runtime.IPath) IProject(org.eclipse.core.resources.IProject) Project(org.talend.core.model.general.Project) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) ItemState(org.talend.core.model.properties.ItemState) PersistenceException(org.talend.commons.exception.PersistenceException) Property(org.talend.core.model.properties.Property) IProject(org.eclipse.core.resources.IProject) IFolder(org.eclipse.core.resources.IFolder) FolderRepositoryObject(org.talend.mdm.repository.models.FolderRepositoryObject)

Example 12 with ContainerItem

use of org.talend.mdm.repository.model.mdmproperties.ContainerItem in project tmdm-studio-se by Talend.

the class TISProcessActionProvider method getActions.

@Override
public List<AbstractRepositoryAction> getActions(IRepositoryViewObject viewObj) {
    List<AbstractRepositoryAction> actions = super.getActions(viewObj);
    Item item = viewObj.getProperty().getItem();
    if (item instanceof ContainerItem) {
        FolderType type = ((FolderItem) item).getType();
        switch(type.getValue()) {
            case FolderType.SYSTEM_FOLDER:
                addAction(actions, createProcessAction, viewObj);
                break;
            case FolderType.STABLE_SYSTEM_FOLDER:
                break;
            case FolderType.FOLDER:
                addAction(actions, createProcessAction, viewObj);
                addAction(actions, renameFolderAction, viewObj);
                addAction(actions, deleteAction, viewObj);
                break;
        }
    } else if (item instanceof ProcessItem) {
        addAction(actions, editProcessAction, viewObj);
        addAction(actions, readProcessAction, viewObj);
        addAction(actions, runProcessAction, viewObj);
        addAction(actions, openExistVersionProcessAction, viewObj);
        addAction(actions, editPropAction, viewObj);
        addAction(actions, deleteAction, viewObj);
        addAction(actions, generateTransformerAction, viewObj);
        addAction(actions, generateTriggerAction, viewObj);
        // deploy
        actions.add(deployToAction);
        addAction(actions, deployToLastServerAction, viewObj);
        addAction(actions, deployAnotherToAction, viewObj);
        addAction(actions, undeployAction, viewObj);
    }
    actions.add(deployAllAction);
    return actions;
}
Also used : AbstractRepositoryAction(org.talend.mdm.repository.core.AbstractRepositoryAction) ProcessItem(org.talend.core.model.properties.ProcessItem) Item(org.talend.core.model.properties.Item) FolderItem(org.talend.core.model.properties.FolderItem) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) FolderItem(org.talend.core.model.properties.FolderItem) ProcessItem(org.talend.core.model.properties.ProcessItem) FolderType(org.talend.core.model.properties.FolderType)

Example 13 with ContainerItem

use of org.talend.mdm.repository.model.mdmproperties.ContainerItem in project tmdm-studio-se by Talend.

the class TransformerV2ActionProvider method canDelete.

private boolean canDelete(IRepositoryViewObject viewObj) {
    Item item = viewObj.getProperty().getItem();
    if (!(item instanceof ContainerItem)) {
        return true;
    }
    String path = item.getState().getPath();
    List<String> paths = Arrays.asList(ITransformerV2NodeConsDef.PATH_BEFOREDEL, ITransformerV2NodeConsDef.PATH_BEFORESAVE, ITransformerV2NodeConsDef.PATH_ENTITYACTION, ITransformerV2NodeConsDef.PATH_WELCOMEACTION, ITransformerV2NodeConsDef.PATH_SMARTVIEW, ITransformerV2NodeConsDef.PATH_OTHER);
    if (path.startsWith("/")) {
        // $NON-NLS-1$
        path = path.substring(1);
    }
    boolean canDel = !paths.contains(path);
    return canDel;
}
Also used : Item(org.talend.core.model.properties.Item) MDMServerObjectItem(org.talend.mdm.repository.model.mdmproperties.MDMServerObjectItem) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem)

Example 14 with ContainerItem

use of org.talend.mdm.repository.model.mdmproperties.ContainerItem in project tmdm-studio-se by Talend.

the class RepositoryViewObjectCheckedWidget method updateServerDef.

private void updateServerDef(IRepositoryViewObject viewObj) {
    if (hasSameServerDef) {
        Item item = viewObj.getProperty().getItem();
        if (item == null || item instanceof ContainerItem) {
            return;
        }
        MDMServerDef serverDef = RepositoryResourceUtil.getLastServerDef(item);
        if (lastServerDef == null) {
            lastServerDef = serverDef;
        } else {
            if (!lastServerDef.equals(serverDef)) {
                lastServerDef = null;
                hasSameServerDef = false;
            }
        }
    }
}
Also used : Item(org.talend.core.model.properties.Item) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) TreeItem(org.eclipse.swt.widgets.TreeItem) ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) MDMServerDef(org.talend.mdm.repository.model.mdmmetadata.MDMServerDef)

Example 15 with ContainerItem

use of org.talend.mdm.repository.model.mdmproperties.ContainerItem in project tmdm-studio-se by Talend.

the class ContainerCacheServiceTest method testRemoveContainer.

@Test
public void testRemoveContainer() {
    // $NON-NLS-1$
    String path = "/path";
    // $NON-NLS-1$
    String propId = "propertyId";
    ERepositoryObjectType repObjType = IServerObjectRepositoryType.TYPE_DATAMODEL;
    IRepositoryViewObject mockChildRpViewObj = PowerMockito.mock(IRepositoryViewObject.class);
    Property mockProperty = PowerMockito.mock(Property.class);
    PowerMockito.when(mockProperty.getId()).thenReturn(propId);
    PowerMockito.when(mockChildRpViewObj.getId()).thenReturn(propId);
    PowerMockito.when(mockChildRpViewObj.getProperty()).thenReturn(mockProperty);
    ContainerCacheService.put(mockChildRpViewObj);
    // container item
    ItemState mockState = PowerMockito.mock(ItemState.class);
    PowerMockito.when(mockState.getPath()).thenReturn(path);
    ContainerItem mockContainerItem = PowerMockito.mock(ContainerItem.class);
    PowerMockito.when(mockContainerItem.getState()).thenReturn(mockState);
    PowerMockito.when(mockContainerItem.getRepObjType()).thenReturn(repObjType);
    FolderRepositoryObject mockFolderRepoObj = PowerMockito.mock(FolderRepositoryObject.class);
    List<IRepositoryViewObject> children = new ArrayList<IRepositoryViewObject>();
    children.add(mockChildRpViewObj);
    children = spy(children);
    PowerMockito.when(mockFolderRepoObj.getChildren()).thenReturn(children);
    Property mockFolderProperty = PowerMockito.mock(Property.class);
    PowerMockito.when(mockFolderProperty.getItem()).thenReturn(mockContainerItem);
    PowerMockito.when(mockFolderRepoObj.getProperty()).thenReturn(mockFolderProperty);
    ContainerCacheService.putContainer(mockFolderRepoObj);
    // 
    ContainerCacheService.removeContainer(repObjType, path);
    assertNull(ContainerCacheService.get(repObjType, path));
    assertNull(ContainerCacheService.get(mockProperty));
}
Also used : ContainerItem(org.talend.mdm.repository.model.mdmproperties.ContainerItem) ItemState(org.talend.core.model.properties.ItemState) IRepositoryViewObject(org.talend.core.model.repository.IRepositoryViewObject) ArrayList(java.util.ArrayList) ERepositoryObjectType(org.talend.core.model.repository.ERepositoryObjectType) Property(org.talend.core.model.properties.Property) FolderRepositoryObject(org.talend.mdm.repository.models.FolderRepositoryObject) PrepareForTest(org.powermock.core.classloader.annotations.PrepareForTest) Test(org.junit.Test)

Aggregations

ContainerItem (org.talend.mdm.repository.model.mdmproperties.ContainerItem)46 Item (org.talend.core.model.properties.Item)28 IRepositoryViewObject (org.talend.core.model.repository.IRepositoryViewObject)24 ItemState (org.talend.core.model.properties.ItemState)18 ERepositoryObjectType (org.talend.core.model.repository.ERepositoryObjectType)16 Test (org.junit.Test)15 PrepareForTest (org.powermock.core.classloader.annotations.PrepareForTest)15 MDMServerObjectItem (org.talend.mdm.repository.model.mdmproperties.MDMServerObjectItem)11 FolderRepositoryObject (org.talend.mdm.repository.models.FolderRepositoryObject)11 Property (org.talend.core.model.properties.Property)10 ImageDescriptor (org.eclipse.jface.resource.ImageDescriptor)9 Resource (org.eclipse.emf.ecore.resource.Resource)8 ResourceSet (org.eclipse.emf.ecore.resource.ResourceSet)8 AbstractSimpleAddActionTest (org.talend.mdm.repository.ui.actions.AbstractSimpleAddActionTest)8 FolderType (org.talend.core.model.properties.FolderType)6 FolderItem (org.talend.core.model.properties.FolderItem)5 Path (org.eclipse.core.runtime.Path)4 PersistenceException (org.talend.commons.exception.PersistenceException)4 WSDataModelItem (org.talend.mdm.repository.model.mdmproperties.WSDataModelItem)4 MDMServerObject (org.talend.mdm.repository.model.mdmserverobject.MDMServerObject)4