/* * 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.diagram.ui.actions; import org.teiid.designer.diagram.ui.NotationChangeListener; /** * NotationChoice * - One instance of this action will be created dynamically to represent each Notation extension * found at init time. * * @since 8.0 */ public class NotationChoice extends DiagramAction { private String sNotationExtensionId; private String sNotationExtensionDisplayName; private NotationChangeListener nclNotationListener; private int iUseCount = 1; //========================================== // CONSTRUCTORS //========================================== public NotationChoice( String sNotationExtensionId, String sNotationExtensionDisplayName, NotationChangeListener nclNotationListener ) { super( AS_RADIO_BUTTON ); setText( sNotationExtensionDisplayName ); this.sNotationExtensionId = sNotationExtensionId; this.sNotationExtensionDisplayName = sNotationExtensionDisplayName; this.nclNotationListener = nclNotationListener; } //========================================== // METHODS //========================================== /* 1. Fire a NotationChanged method. The likely listener will be the current diagram editor. * When the listener gets this event it will extract the Notation Id string and use it to * get a new set of factories from DiagramNotationManager. * */ @Override protected void doRun() { // DiagramUiConstants.Util.log( IStatus.INFO, "[NotationChoice.run] UseCount: " + iUseCount + "; my name is: " + sNotationExtensionDisplayName ); //$NON-NLS-1$ nclNotationListener.setNotationId( sNotationExtensionId ); iUseCount++; } public String getExtensionId() { return sNotationExtensionId; } public String getExtensionDisplayName() { return sNotationExtensionDisplayName; } public void setNotationChangeListener( NotationChangeListener ncl ) { this.nclNotationListener = ncl; } }