Java tutorial
/******************************************************************************* * Copyright 2017 Capital One Services, LLC and Bitwise, Inc. * 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. *******************************************************************************/ package hydrograph.ui.graph.action; import org.eclipse.draw2d.geometry.Dimension; import org.eclipse.gef.commands.Command; import org.eclipse.gef.ui.actions.SelectionAction; import org.eclipse.jface.action.IAction; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.graphics.ImageData; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.PlatformUI; import hydrograph.ui.common.util.Constants; import hydrograph.ui.common.util.XMLConfigUtil; import hydrograph.ui.graph.command.CommentBoxCommand; import hydrograph.ui.graph.controller.ContainerEditPart; import hydrograph.ui.graph.editor.ELTGraphicalEditor; import hydrograph.ui.graph.model.CommentBox; import hydrograph.ui.graph.model.Container; /** * The Class Action use to create Comment Box * * @author Bitwise */ public class CommentBoxAction extends SelectionAction { private static String COMMENT_BOX = "Comment Box"; private String LABEL = "Label"; /** * Instantiates a new CommentBoxAction. * * @param part * the part * @param action * the action */ public CommentBoxAction(IWorkbenchPart part, IAction action) { super(part); setLazyEnablementCalculation(true); } @Override protected boolean calculateEnabled() { if (getSelectedObjects() != null && getSelectedObjects().size() == 1 && getSelectedObjects().get(0) instanceof ContainerEditPart) return true; return false; } @Override protected void init() { super.init(); setText(COMMENT_BOX); setId(Constants.COMMENT_BOX); setHoverImageDescriptor(getImageDisDescriptor()); setImageDescriptor(getImageDisDescriptor()); setDisabledImageDescriptor(getImageDisDescriptor()); setEnabled(false); } /** * Creating command for comment box */ private Command createCommentBoxCommand() { ELTGraphicalEditor editor = (ELTGraphicalEditor) PlatformUI.getWorkbench().getActiveWorkbenchWindow() .getActivePage().getActiveEditor(); if (editor != null) { Container container = editor.getContainer(); org.eclipse.draw2d.geometry.Point point = editor.location; CommentBox label = new CommentBox(LABEL); label.setSize(new Dimension(300, 60)); label.setLocation(point); CommentBoxCommand command = new CommentBoxCommand(label, LABEL, container); return command; } return null; } /** * return ImageDescriptor for comment box * @return ImageDescriptor */ private ImageDescriptor getImageDisDescriptor() { ImageDescriptor imageDescriptor = new ImageDescriptor() { @Override public ImageData getImageData() { return new ImageData(XMLConfigUtil.INSTANCE.CONFIG_FILES_PATH + "/icons/comment-box-icon.png"); } }; return imageDescriptor; } @Override public void run() { execute(createCommentBoxCommand()); } }