package org.pentaho.reporting.designer.extensions.connectioneditor; import org.pentaho.reporting.designer.core.ReportDesignerContext; import org.pentaho.reporting.designer.core.actions.AbstractDesignerContextAction; import org.pentaho.reporting.designer.core.util.IconLoader; import org.pentaho.reporting.libraries.designtime.swing.LibSwingUtil; import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; public class ConnectionEditorAction extends AbstractDesignerContextAction { public ConnectionEditorAction() { putValue( Action.NAME, Messages.getInstance().getString( "ConnectionEditorAction.Text" ) ); putValue( Action.SHORT_DESCRIPTION, Messages.getInstance().getString( "ConnectionEditorAction.Description" ) ); putValue( Action.MNEMONIC_KEY, Messages.getInstance().getOptionalMnemonic( "ConnectionEditorAction.Mnemonic" ) ); putValue( Action.ACCELERATOR_KEY, Messages.getInstance().getOptionalKeyStroke( "ConnectionEditorAction.Accelerator" ) ); putValue( Action.SMALL_ICON, IconLoader.getInstance().getEmptyIcon() ); } public void actionPerformed( final ActionEvent e ) { final ReportDesignerContext context = getReportDesignerContext(); final Component parent = context.getView().getParent(); final Window window = LibSwingUtil.getWindowAncestor( parent ); final ConnectionEditorDialog dialog; if ( window instanceof JDialog ) { dialog = new ConnectionEditorDialog( (JDialog) window ); } else if ( window instanceof JFrame ) { dialog = new ConnectionEditorDialog( (JFrame) window ); } else { dialog = new ConnectionEditorDialog(); } dialog.performEditConnections( context ); } }