📄 modelbrowsermousehandling.java
字号:
/*
* USE - UML based specification environment
* Copyright (C) 1999-2004 Mark Richters, University of Bremen
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; either version 2 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful, but
* WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
/* $ProjectHeader: use 2-3-0-release.1 Mon, 12 Sep 2005 20:18:33 +0200 green $ */
package org.tzi.use.gui.views.diagrams.event;
import java.awt.Rectangle;
import java.awt.event.InputEvent;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JMenu;
import javax.swing.JPopupMenu;
import javax.swing.JRadioButtonMenuItem;
import org.tzi.use.gui.main.ModelBrowser;
import org.tzi.use.gui.main.ModelBrowserSorting;
import org.tzi.use.uml.mm.MModelElement;
/**
* @author gutsche
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class ModelBrowserMouseHandling implements MouseListener {
private final String ALPHABETIC = "in alphabetic order";
private final String ALPHABETIC_BY_CLASS = "in alphabetic order - class name first";
private final String ALPHABETIC_BY_INV_NAME = "in alphabetic order - invariant name first";
private final String USE = "in USE file order";
private final String ALPHABETIC_BY_OP = "in alphabetic order - operation name first";
private final String ALPHABETIC_BY_COND_NAME = "in alphabetic order - condition name first";
private final String ALPHABETIC_BY_COND_TYPE= "in alphabetic order - pre conditions first";
private ModelBrowserSorting fMBS = ModelBrowserSorting.getInstance();
private ModelBrowser fMB;
public ModelBrowserMouseHandling( ModelBrowser mb ) {
fMB = mb;
fHighlightElements = new HashMap();
}
/**
* Determinds if the popupMenu is shown and if so, than
* it shows it right away, too.
*/
private boolean maybeShowPopup(MouseEvent e) {
if (!e.isPopupTrigger()) {
return false;
}
// create the popup menu
JPopupMenu popupMenu; // context menu on right mouse click
popupMenu = new JPopupMenu();
//////////////////////////////////////////////////////////
// items for classes
//////////////////////////////////////////////////////////
JMenu subMenuCls = new JMenu("sort classes");
popupMenu.add(subMenuCls);
final JRadioButtonMenuItem alphabeticCls = new JRadioButtonMenuItem(ALPHABETIC);
alphabeticCls.setSelected(fMBS.CLS_ALPHABETIC == fMBS.clsOrder);
alphabeticCls.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ev) {
JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals(ALPHABETIC)) {
fMBS.clsOrder = fMBS.CLS_ALPHABETIC;
}
fMBS.fireStateChanged();
}
});
subMenuCls.add(alphabeticCls);
final JRadioButtonMenuItem useOrderCls = new JRadioButtonMenuItem(USE);
useOrderCls.setSelected(fMBS.CLS_USE_ORDER == fMBS.clsOrder);
useOrderCls.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent ev) {
final JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals(USE)) {
fMBS.clsOrder = fMBS.CLS_USE_ORDER;
}
fMBS.fireStateChanged();
}
});
subMenuCls.add(useOrderCls);
// submenu for attributes
JMenu subMenuAttr = new JMenu( "sort attributes" );
subMenuCls.add( subMenuAttr );
final JRadioButtonMenuItem alphabeticAttr = new JRadioButtonMenuItem( ALPHABETIC );
alphabeticAttr.setSelected( fMBS.ATTR_ALPHABETIC == fMBS.attrOrder );
alphabeticAttr.addItemListener( new ItemListener() {
public void itemStateChanged( final ItemEvent ev ) {
final JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals( ALPHABETIC )) {
fMBS.attrOrder = fMBS.ATTR_ALPHABETIC;
}
fMBS.fireStateChanged();
}
});
subMenuAttr.add( alphabeticAttr );
final JRadioButtonMenuItem useOrderAttr = new JRadioButtonMenuItem( USE );
useOrderAttr.setSelected( fMBS.ATTR_USE_ORDER == fMBS.attrOrder );
useOrderAttr.addItemListener( new ItemListener() {
public void itemStateChanged( final ItemEvent ev ) {
final JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals(USE)) {
fMBS.attrOrder = fMBS.ATTR_USE_ORDER;
}
fMBS.fireStateChanged();
}
});
subMenuAttr.add( useOrderAttr );
// submenu for operations
JMenu subMenuOpr = new JMenu( "sort operations" );
subMenuCls.add( subMenuOpr );
final JRadioButtonMenuItem alphabeticOpr = new JRadioButtonMenuItem( ALPHABETIC );
alphabeticOpr.setSelected( fMBS.OPR_ALPHABETIC == fMBS.oprOrder );
alphabeticOpr.addItemListener( new ItemListener() {
public void itemStateChanged( final ItemEvent ev ) {
final JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals( ALPHABETIC )) {
fMBS.oprOrder = fMBS.OPR_ALPHABETIC;
}
fMBS.fireStateChanged();
}
});
subMenuOpr.add( alphabeticOpr );
final JRadioButtonMenuItem useOrderOpr = new JRadioButtonMenuItem( USE );
useOrderOpr.setSelected( fMBS.OPR_USE_ORDER == fMBS.oprOrder );
useOrderOpr.addItemListener( new ItemListener() {
public void itemStateChanged( final ItemEvent ev ) {
final JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals(USE)) {
fMBS.oprOrder = fMBS.OPR_USE_ORDER;
}
fMBS.fireStateChanged();
}
});
subMenuOpr.add( useOrderOpr );
//////////////////////////////////////////////////////////
// items for associations
//////////////////////////////////////////////////////////
final JMenu subMenuAssoc = new JMenu("sort associations");
popupMenu.add(subMenuAssoc);
final JRadioButtonMenuItem alphabeticAssoc = new JRadioButtonMenuItem(ALPHABETIC);
alphabeticAssoc.setSelected(fMBS.ASSOC_ALPHABETIC == fMBS.assocOrder);
alphabeticAssoc.addItemListener(new ItemListener() {
public void itemStateChanged(final ItemEvent ev) {
final JRadioButtonMenuItem j = (JRadioButtonMenuItem) ev.getItem();
if (j.getText().equals(ALPHABETIC)) {
fMBS.assocOrder = fMBS.ASSOC_ALPHABETIC;
}
fMBS.fireStateChanged();
}
});
subMenuAssoc.add(alphabeticAssoc);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -