// ============================================================================ // // 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.ui.editors; import org.apache.log4j.Logger; import org.eclipse.ui.IViewPart; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; import org.talend.mdm.commmon.util.webapp.XSystemObjects; import org.talend.mdm.repository.i18n.Messages; import org.talend.mdm.repository.plugin.RepositoryPlugin; import org.talend.mdm.repository.utils.EclipseResourceManager; import com.amalto.workbench.editors.AFormPage; import com.amalto.workbench.editors.DataClusterBrowserMainPage; import com.amalto.workbench.editors.ItemsTrashBrowserMainPage; import com.amalto.workbench.editors.XObjectBrowser; import com.amalto.workbench.exadapter.ExAdapterManager; import com.amalto.workbench.models.TreeObject; import com.amalto.workbench.providers.XObjectBrowserInput; import com.amalto.workbench.views.MDMPerspective; /** * DOC achen class global comment. Detailled comment */ public class XObjectBrowser2 extends XObjectBrowser implements ISvnHistory { static Logger log = Logger.getLogger(XObjectBrowser2.class); public static final String EDITOR_ID = "org.talend.mdm.repository.ui.editors.XObjectBrowser2"; //$NON-NLS-1$ private final String masterImgPath = "icons/datacluster.png"; //$NON-NLS-1$ protected boolean stagingDBExist; private IXObjectBrowser2ExAdapter exAdapter; private void refreshPropertyView() throws PartInitException { IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); IViewPart propView = page.findView(MDMPerspective.VIEWID_PROPERTYVIEW); if (propView != null) { PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().hideView(propView); } page.showView(MDMPerspective.VIEWID_PROPERTYVIEW); } /* * (non-Javadoc) * * @see com.amalto.workbench.editors.XObjectEditor#addPages() */ @Override protected void addPages() { super.addPages(); try { refreshPropertyView(); } catch (PartInitException e) { } } @Override protected void addPageForXObject(TreeObject xobject) throws PartInitException { switch (xobject.getType()) { case TreeObject.VIEW: addPage(new ViewBrowserMainPage2(this)); break; case TreeObject.DATA_CLUSTER: if (xobject.getDisplayName() != null && xobject.getDisplayName().equals(XSystemObjects.DC_MDMITEMSTRASH.getName())) { addPage(new ItemsTrashBrowserMainPage(this)); break; } addPage(new DataClusterBrowserMainPage(this));// page index 0 setPageImage(0, EclipseResourceManager.getImage(RepositoryPlugin.PLUGIN_ID, masterImgPath)); setPageText(0, Messages.bind(Messages.DataClusterBrowserMainPage_masterDataContainer, ((XObjectBrowserInput) getEditorInput()).getName())); exAdapter = ExAdapterManager.getAdapter(this, IXObjectBrowser2ExAdapter.class); if (exAdapter != null) { boolean pageAdded = exAdapter.addPageForXObject(this, getEditorInput(), xobject); if (pageAdded) { setPageText(1, exAdapter.getPageText()); setPageImage(1, exAdapter.getPageImage()); stagingDBExist = exAdapter.isStagingDBExist(); } } break; case TreeObject.SUBSCRIPTION_ENGINE: try { addPage(new RoutingEngineV2BrowserMainPage2(this)); } catch (PartInitException e) { log.error(e.getMessage(), e); } break; }// switch } /* * (non-Javadoc) * * @see com.amalto.workbench.editors.XObjectBrowser#pageChange(int) */ @Override protected void pageChange(int newPageIndex) { super.pageChange(newPageIndex); AFormPage page = (AFormPage) getPage(newPageIndex); refreshToolBarState(page); } private void refreshToolBarState(AFormPage page) { if (page instanceof DataClusterBrowserMainPage) { DataClusterBrowserMainPage clusterMainPage = (DataClusterBrowserMainPage) page; boolean master = clusterMainPage.isMaster(); getToolBar().getToolbarControl().setEnabled(master || stagingDBExist); } } @Override public boolean isLocalInput() { return true; } }