// ============================================================================ // // 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.dataprofiler.core.ui.editor.pattern; import org.apache.log4j.Level; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.ui.PartInitException; import org.talend.commons.exception.ExceptionHandler; import org.talend.dataprofiler.core.i18n.internal.DefaultMessagesImpl; import org.talend.dataprofiler.core.ui.action.actions.DefaultSaveAction; import org.talend.dataprofiler.core.ui.editor.CommonFormEditor; import org.talend.dataprofiler.core.ui.editor.TdEditorToolBar; /** * DOC rli class global comment. Detailled comment */ public class PatternEditor extends CommonFormEditor { // MOD xqliu 2009-07-02 bug 7687 private DefaultSaveAction saveAction; // ~ private static final String ID = "PatternEditor.masterPage";//$NON-NLS-1$ @Override protected void addPages() { masterPage = new PatternMasterDetailsPage(this, ID, DefaultMessagesImpl.getString("PatternEditor.patternSettings")); //$NON-NLS-1$ // MOD qiongli 2011-3-21,bug 19472.set method 'setPartName(...)' behind method 'addPage(...)' try { addPage(masterPage); setPartName(masterPage.getIntactElemenetName()); } catch (PartInitException e) { ExceptionHandler.process(e, Level.ERROR); } TdEditorToolBar toolbar = getToolBar(); if (toolbar != null && masterPage != null) { saveAction = new DefaultSaveAction(this); toolbar.addActions(saveAction); } } @Override public void doSave(IProgressMonitor monitor) { if (masterPage.isDirty()) { masterPage.doSave(monitor); setPartName(masterPage.getIntactElemenetName()); } setEditorObject(((PatternMasterDetailsPage) getMasterPage()).getCurrentRepNode()); super.doSave(monitor); } @Override protected void firePropertyChange(final int propertyId) { // ADD xqliu 2009-07-02 bug 7687 setSaveActionButtonState(isDirty()); // ~ super.firePropertyChange(propertyId); } @Override protected void pageChange(int newPageIndex) { super.pageChange(newPageIndex); // ADD xqliu 2009-07-02 bug 7686 if (masterPage != null) { setSaveActionButtonState(false); } } /** * DOC xqliu 2009-07-02 bug 7687. * * @param state */ public void setSaveActionButtonState(boolean state) { if (saveAction != null) { saveAction.setEnabled(state); } } @Override public void setFocus() { super.setFocus(); // don't invoke this method here, invoke it in IPartListener.partBroughtToTop() // WorkbenchUtils.autoChange2DataProfilerPerspective(); } }