/* * JBoss, Home of Professional Open Source. * * See the LEGAL.txt file distributed with this work for information regarding copyright ownership and licensing. * * See the AUTHORS.txt file distributed with this work for a full listing of individual contributors. */ package org.teiid.designer.ui.actions; import org.eclipse.jface.viewers.ISelection; import org.eclipse.jface.viewers.SelectionChangedEvent; import org.eclipse.jface.window.Window; import org.eclipse.swt.widgets.Shell; import org.eclipse.ui.IEditorPart; import org.eclipse.ui.IWorkbenchPart; import org.teiid.designer.ui.UiPlugin; import org.teiid.designer.ui.editors.ModelEditor; import org.teiid.designer.ui.table.InsertRowsDialog; import org.teiid.designer.ui.table.ModelTableEditor; /** * InsertRowsAction * * @since 8.0 */ public class InsertRowsAction extends AbstractModelerAction { int iNewRows = 1; /////////////////////////////////////////////////////////////////////////////////////////////// // CONSTRUCTORS /////////////////////////////////////////////////////////////////////////////////////////////// public InsertRowsAction() { super(UiPlugin.getDefault()); } /////////////////////////////////////////////////////////////////////////////////////////////// // METHODS /////////////////////////////////////////////////////////////////////////////////////////////// /* (non-Javadoc) * see org.teiid.designer.ui.common.actions.AbstractAction#doRun() */ @Override protected void doRun() { Shell shell = UiPlugin.getDefault().getCurrentWorkbenchWindow().getShell(); InsertRowsDialog dialog = new InsertRowsDialog( shell, getImageDescriptor().createImage() ); dialog.open(); if ( dialog.getReturnCode() == Window.OK) { iNewRows = dialog.getCount(); getTableEditor().insertRows( iNewRows ); } } private ModelTableEditor getTableEditor() { ModelTableEditor result = null; IEditorPart editor = getActiveEditor(); if (editor instanceof ModelEditor) { ModelEditor modelEditor = (ModelEditor)editor; IEditorPart subEditor = modelEditor.getActiveEditor(); if (subEditor instanceof ModelTableEditor) { result = (ModelTableEditor)subEditor; } } return result; } /* (non-Javadoc) * see org.teiid.designer.ui.common.actions.AbstractAction#selectionChanged(org.eclipse.ui.IWorkbenchPart, org.eclipse.jface.viewers.ISelection) */ @Override public void selectionChanged(IWorkbenchPart thePart, ISelection theSelection) { super.selectionChanged(thePart, theSelection); setEnabledState(); } /* (non-Javadoc) * see org.teiid.designer.ui.common.actions.AbstractAction#selectionChanged(org.eclipse.jface.viewers.SelectionChangedEvent) */ @Override public void selectionChanged(SelectionChangedEvent theEvent) { super.selectionChanged(theEvent); setEnabledState(); } /** * Sets the enabled state of the action. */ private void setEnabledState() { boolean enable = false; if (getTableEditor() != null) { enable = getTableEditor().canInsertRows(); } setEnabled(enable); } }