/*
* Copyright 2005-7 Pi4 Technologies Ltd
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*
* Change History:
* Mar 21, 2007 : Initial version created by gary
*/
package org.savara.tools.scenario.designer.parts;
import org.eclipse.draw2d.ConnectionAnchor;
import org.eclipse.draw2d.IFigure;
import org.eclipse.draw2d.Label;
import org.eclipse.draw2d.PositionConstants;
import org.eclipse.draw2d.geometry.Point;
import org.eclipse.gef.ConnectionEditPart;
import org.eclipse.gef.EditPolicy;
import org.eclipse.gef.Request;
import org.eclipse.gef.requests.DropRequest;
import org.eclipse.ui.views.properties.IPropertySource;
import org.savara.scenario.model.*;
import org.savara.tools.scenario.designer.figures.*;
import org.savara.tools.scenario.designer.model.ModelSupport;
import org.savara.tools.scenario.designer.policies.ConnectableMessageEventEditPolicy;
import org.savara.tools.scenario.designer.policies.ScenarioComponentEditPolicy;
import org.savara.tools.scenario.designer.policies.ScenarioContainerXYLayoutEditPolicy;
import org.savara.tools.scenario.designer.view.ViewSupport;
/**
* This class provides a time elapse event edit part.
*/
public class TimeElapsedEventEditPart extends ScenarioBaseEditPart {
public TimeElapsedEventEditPart(Object elem) {
super(elem);
}
/**
* @see org.eclipse.gef.editparts.AbstractGraphicalEditPart#createFigure()
*/
protected IFigure createFigure() {
IFigure ret=null;
ret = new TimeElapsedEventFigure(getScenarioDiagram());
return(ret);
}
protected IPropertySource getPropertySource() {
return(new org.savara.tools.scenario.designer.view.TimeElapsedEventPropertySource((TimeElapsedEvent)getModel()));
}
/**
* @see org.eclipse.gef.editparts.AbstractEditPart#createEditPolicies()
*/
protected void createEditPolicies() {
installEditPolicy(EditPolicy.COMPONENT_ROLE, new ScenarioComponentEditPolicy());
installEditPolicy(EditPolicy.LAYOUT_ROLE,
new ScenarioContainerXYLayoutEditPolicy());
//installEditPolicy(org.eclipse.gef.EditPolicy.GRAPHICAL_NODE_ROLE,
// new ConnectableMessageEventEditPolicy());
//installEditPolicy(EditPolicy.GRAPHICAL_NODE_ROLE, new ActivityNodeEditPolicy());
//installEditPolicy(EditPolicy.CONTAINER_ROLE, new ActivitySourceEditPolicy());
//installEditPolicy(EditPolicy.COMPONENT_ROLE, new ActivityEditPolicy());
//installEditPolicy(EditPolicy.DIRECT_EDIT_ROLE, new ActivityDirectEditPolicy());
}
/*
int getAnchorOffset() {
return 9;
}
*/
/*
protected void performDirectEdit() {
if (manager == null) {
Label l = (Label)getFigure();
manager =
new ActivityDirectEditManager(
this,
TextCellEditor.class,
new ActivityCellEditorLocator(l), l);
}
manager.show();
}
*/
public int getXOffset() {
return(-10);
}
/**
* @see org.eclipse.gef.editparts.AbstractEditPart#refreshVisuals()
*/
protected void refreshVisuals() {
((TimeElapsedEventFigure)getFigure()).setElapsedTime(
((TimeElapsedEvent)getModel()).getDuration());
ViewSupport.setTooltip(getFigure(), getModel());
super.refreshVisuals();
}
public int getHeight() {
int ret=20; //ViewSupport.getHeight(getModel());
return(ret);
}
public int getWidth() {
int ret=ViewSupport.getWidth(getModel(), getScenarioDiagram());
return(ret);
}
/*
public void reset() {
((MessageEventFigure)getFigure()).setState(MessageEventFigure.STATE_RESET);
super.reset();
}
public void processing() {
((MessageEventFigure)getFigure()).setState(MessageEventFigure.STATE_PROCESSING);
}
public void successful() {
((MessageEventFigure)getFigure()).setState(MessageEventFigure.STATE_SUCCESSFUL);
}
public void unsuccessful() {
((MessageEventFigure)getFigure()).setState(MessageEventFigure.STATE_UNSUCCESSFUL);
}
public boolean isUnsuccessful() {
return(((MessageEventFigure)getFigure()).getState() ==
MessageEventFigure.STATE_UNSUCCESSFUL);
}
*/
}