📄 treemousehandler.java
字号:
/** * TreeMouseHandler.java * Copyright 2005 Carlos Silva A. * * 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 jgantt.view.tree;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.MouseEvent;import java.awt.event.MouseListener;import java.util.Enumeration;import javax.swing.JCheckBoxMenuItem;import javax.swing.JMenuItem;import javax.swing.JPopupMenu;/** * TreeMouseHandler * Detecta el evento de pressed para asignar el foco de la tabla * * <p>$Date: 2004/04/23 00:04:31 $</p> * @version $Revision: 1.1 $ * @author Carlos Silva */public class TreeMouseHandler implements MouseListener { TaskTree taskTree; /** * */ public TreeMouseHandler(TaskTree tree) { super(); taskTree = tree; } /** * @see java.awt.event.MouseListener#mouseClicked(java.awt.event.MouseEvent) */ public void mouseClicked(MouseEvent arg0) { } public void mousePressed(MouseEvent ev) { if ((ev.getModifiers() & MouseEvent.BUTTON1_MASK) > 0) { taskTree.setFocus(ev.getX(), ev.getY()); } if ((ev.getModifiers() & MouseEvent.BUTTON3_MASK) > 0) { if (ev.getPoint().y < taskTree.treeOptions.headerHeight) { popupColumnMenu(ev.getPoint()); } } } public void mouseReleased(MouseEvent arg0) { } public void mouseEntered(MouseEvent arg0) { } public void mouseExited(MouseEvent arg0) { } void popupColumnMenu(Point p) { JPopupMenu popup = null; popup = new JPopupMenu("Columns..."); ActionListener al = new ColumnActionListener(p); // incluir nombres de columnas for (Enumeration e = taskTree.allColumns.elements(); e.hasMoreElements();) { Column c = (Column) e.nextElement(); JCheckBoxMenuItem mi = new JCheckBoxMenuItem(c.getName()); mi.setSelected(taskTree.columns.contains(c)); mi.addActionListener(al); popup.add(mi); } taskTree.add(popup); popup.show(taskTree, p.x, p.y); } class ColumnActionListener implements ActionListener { int clickedColumnIndex = 0; public ColumnActionListener(Point p) { int xp = 0; clickedColumnIndex = taskTree.columns.size(); for (int i = 0; i < taskTree.columns.size(); i++) { Column c = (Column) taskTree.columns.get(i); xp += c.getLength(); if (p.x < xp) { clickedColumnIndex = i; break; } } } public void actionPerformed(ActionEvent ev) { String ac = ev.getActionCommand(); JMenuItem mi = (JMenuItem) ev.getSource(); if (mi.isSelected()) { // Agregar for (Enumeration e = taskTree.allColumns.elements(); e.hasMoreElements(); ) { Column c = (Column) e.nextElement(); if (c.getName().equals(ac)) { taskTree.columns.insertElementAt(c, clickedColumnIndex); taskTree.recalcWidths = true; break; } } } else { // Quitar for (int i = 0; i < taskTree.columns.size(); i++) { Column c = (Column) taskTree.columns.get(i); if (c.getName().equals(ac)) { taskTree.columns.remove(c); break; } } } taskTree.treeOptions.columns.clear(); for (int i = 0; i < taskTree.columns.size(); i++) { Column c = (Column) taskTree.columns.get(i); taskTree.treeOptions.columns.add(c.getProperty()); } taskTree.repaint(); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -