/* GeoGebra - Dynamic Mathematics for Everyone http://www.geogebra.org This file is part of GeoGebra. 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. */ package org.geogebra.desktop.geogebra3D.euclidian3D; import java.awt.Component; import java.awt.event.ComponentEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseWheelEvent; import javax.swing.ToolTipManager; import org.geogebra.common.euclidian.EuclidianView; import org.geogebra.common.euclidian.Hits; import org.geogebra.common.euclidian.event.AbstractEvent; import org.geogebra.common.euclidian.event.PointerEventType; import org.geogebra.common.geogebra3D.euclidian3D.EuclidianController3D; import org.geogebra.common.kernel.Kernel; import org.geogebra.desktop.euclidian.EuclidianControllerListeners; import org.geogebra.desktop.euclidian.event.MouseEventD; import org.geogebra.desktop.main.AppD; /** * EuclidianController.java * * Created on 16. October 2001, 15:41 */ public class EuclidianController3DD extends EuclidianController3D implements EuclidianControllerListeners { private int defaultInitialDelay; /*********************************************** * Creates new EuclidianController * * @param kernel * Kernel **********************************************/ public EuclidianController3DD(Kernel kernel) { super(kernel.getApplication()); setKernel(kernel); // for tooltip manager defaultInitialDelay = ToolTipManager.sharedInstance().getInitialDelay(); } @Override public AppD getApplication() { return (AppD) app; } @Override public void setView(EuclidianView view) { super.setView(view); setView3D(view); } @Override public void mouseClicked(MouseEvent e) { // let mousePressed and mouseReleased take care of this } @Override public void mousePressed(MouseEvent e) { AbstractEvent event = MouseEventD.wrapEvent(e); wrapMousePressed(event); event.release(); } @Override public void mouseDragged(MouseEvent e) { AbstractEvent event = MouseEventD.wrapEvent(e); // no capture in desktop wrapMouseDragged(event, false); event.release(); } @Override public void mouseReleased(MouseEvent e) { AbstractEvent event = MouseEventD.wrapEvent(e); wrapMouseReleased(event); event.release(); } @Override public void mouseMoved(MouseEvent e) { AbstractEvent event = MouseEventD.wrapEvent(e); wrapMouseMoved(event); event.release(); } @Override public void mouseEntered(MouseEvent e) { wrapMouseEntered(); } @Override public void mouseExited(MouseEvent e) { AbstractEvent event = MouseEventD.wrapEvent(e); wrapMouseExited(event); event.release(); } /* * public void focusGained(FocusEvent e) { initToolTipManager(); } * * public void focusLost(FocusEvent e) { resetToolTipManager(); } */ @Override public void initToolTipManager() { // set tooltip manager ToolTipManager ttm = ToolTipManager.sharedInstance(); ttm.setInitialDelay(defaultInitialDelay / 2); ttm.setEnabled(((AppD) app).getAllowToolTips()); } @Override public void resetToolTipManager() { ToolTipManager ttm = ToolTipManager.sharedInstance(); ttm.setInitialDelay(defaultInitialDelay); } @Override public void componentResized(ComponentEvent e) { // tell the view that it was resized if (getView() != null) { getView().updateSize(); } } @Override public void componentShown(ComponentEvent e) { // do nothing } @Override public void componentHidden(ComponentEvent e) { // do nothing } @Override public void componentMoved(ComponentEvent e) { // do nothing } /** * Zooms in or out using mouse wheel */ @Override public void mouseWheelMoved(MouseWheelEvent e) { wrapMouseWheelMoved(e.getX(), e.getY(), e.getWheelRotation(), e.isShiftDown() || e.isMetaDown(), e.isAltDown()); } @Override public void addListenersTo(Component evjpanel) { evjpanel.addMouseMotionListener(this); evjpanel.addMouseListener(this); evjpanel.addMouseWheelListener(this); evjpanel.addComponentListener(this); } @Override public boolean refreshHighlighting(Hits hits, boolean control) { if (((AppD) app).getShiftDown()) { return false; } return super.refreshHighlighting(hits, control); } @Override protected void updateSelectionRectangle(boolean keepScreenRatio) { // TODO } @Override public void closePopups(int x, int y, PointerEventType type) { // TODO Auto-generated method stub } }