| /******************************************************************************* |
| * Copyright (c) 2004-2008 Istvan Rath and Daniel Varro |
| * All rights reserved. This program and the accompanying materials |
| * are made available under the terms of the Eclipse Public License v1.0 |
| * which accompanies this distribution, and is available at |
| * http://www.eclipse.org/legal/epl-v10.html |
| * |
| * Contributors: |
| * Istvan Rath - initial API and implementation |
| *******************************************************************************/ |
| |
| package org.eclipse.viatra2.treeeditor.providers;
|
|
|
|
|
| import org.eclipse.swt.SWT;
|
| import org.eclipse.swt.custom.TreeEditor;
|
| import org.eclipse.swt.events.MouseEvent;
|
| import org.eclipse.swt.events.MouseListener;
|
| import org.eclipse.swt.graphics.Point;
|
| import org.eclipse.swt.widgets.Text;
|
| import org.eclipse.swt.widgets.Tree;
|
| import org.eclipse.swt.widgets.TreeItem;
|
| import org.eclipse.viatra2.core.IEntity; |
| import org.eclipse.viatra2.core.IModelElement;
|
| import org.eclipse.viatra2.treeeditor.ViatraTreeEditor;
|
|
|
| public class ViatraTreeMouseListener implements MouseListener {
|
|
|
| protected Tree iTreeControl;
|
| protected ViatraTreeEditor iVTE;
|
|
|
| public ViatraTreeMouseListener(ViatraTreeEditor vte, Tree tc) {
|
| iTreeControl = tc;
|
| iVTE = vte;
|
| }
|
|
|
|
|
| public void mouseDoubleClick(MouseEvent e) {
|
| if (iTreeControl != null) {
|
| TreeItem item = iTreeControl.getItem(new Point(e.x, e.y));
|
| if (item==null) return;
|
| IModelElement me = (IModelElement) item.getData(); |
| if (me.getFullyQualifiedName().length()<1) return; // ensure root cannot be renamed |
|
|
| TreeEditor editor = new TreeEditor(iTreeControl);
|
| editor.horizontalAlignment = SWT.LEFT;
|
| editor.grabHorizontal = true;
|
| editor.minimumWidth = 64;
|
|
|
| ViatraTreeEventListener list = new ViatraTreeEventListener(me, editor, iVTE);
|
| Text celleditor = new Text(iTreeControl, SWT.NONE);
|
| |
| String value = ""; |
| if (me instanceof IEntity && ((IEntity)me).getValue().length()>0) { |
| value = " {"+((IEntity)me).getValue()+"}"; |
| }
|
| celleditor.setText(me.getName()+value);
|
| celleditor.addFocusListener(list);
|
| celleditor.addKeyListener(list);
|
| celleditor.addModifyListener(list);
|
| celleditor.selectAll();
|
| celleditor.setFocus();
|
| editor.setEditor(celleditor,item);
|
| }
|
| }
|
|
|
|
|
| public void mouseDown(MouseEvent e) {
|
|
|
| }
|
|
|
| public void mouseUp(MouseEvent e) {
|
|
|
| }
|
|
|
| }
|