// ============================================================================ // // Copyright (C) 2006-2016 Talend Inc. - www.talend.com // // This source code is available under agreement available at // %InstallDIR%\features\org.talend.rcp.branding.%PRODUCTNAME%\%PRODUCTNAME%license.txt // // You should have received a copy of the agreement // along with this program; if not, write to Talend SA // 9 rue Pages 92150 Suresnes, France // // ============================================================================ package org.talend.mdm.repository.core.bridge; import java.util.List; import org.eclipse.jface.viewers.ISelectionProvider; import org.talend.core.model.repository.IRepositoryViewObject; import org.talend.mdm.repository.core.AbstractRepositoryAction; import org.talend.mdm.repository.core.service.ContainerCacheService; import org.talend.mdm.repository.models.FolderRepositoryObject; import org.talend.repository.ui.actions.AContextualAction; /** * DOC hbhong class global comment. Detailled comment */ public abstract class AbstractBridgeRepositoryAction extends AbstractRepositoryAction { private AContextualAction contextAction; public void setContextAction(AContextualAction contextAction) { this.contextAction = contextAction; contextAction.setSpecialSelection(selectionProvider); setText(contextAction.getText()); setImageDescriptor(contextAction.getImageDescriptor()); } private ISelectionProvider selectionProvider; /** * Getter for selectionProvider. * * @return the selectionProvider */ public ISelectionProvider getSelectionProvider() { return this.selectionProvider; } public AbstractBridgeRepositoryAction(String name) { super(name); selectionProvider = new RepositoryViewSelectionProvider(this); } public AbstractBridgeRepositoryAction(AContextualAction cAction) { super(cAction.getText()); setImageDescriptor(cAction.getImageDescriptor()); selectionProvider = new RepositoryViewSelectionProvider(this); this.contextAction = cAction; this.contextAction.setSpecialSelection(selectionProvider); } @Override protected void doRun() { contextAction.run(); } protected void refreshParentContainer() { Object object = getSelectedObject().get(0); if (object instanceof IRepositoryViewObject) { IRepositoryViewObject parent = ContainerCacheService.getParent((IRepositoryViewObject) object); if (parent != null && parent instanceof FolderRepositoryObject) { commonViewer.refresh(parent); commonViewer.expandToLevel(parent, 1); } } } protected void refreshCurrentContainer() { Object object = getSelectedObject().get(0); if (object instanceof FolderRepositoryObject) { commonViewer.refresh(object); commonViewer.expandToLevel(object, 1); } } protected void refreshCurrentObject() { List<Object> selectedObjects = getSelectedObject(); if(selectedObjects != null) { for(Object obj:selectedObjects) { commonViewer.refresh(obj); } } } }