/* 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.common.gui.view.algebra; import org.geogebra.common.gui.Editing; import org.geogebra.common.gui.SetLabels; import org.geogebra.common.kernel.geos.GeoElement; /** * Algebra view -- shows algebraic representation of the objects either as * value, definition or command */ public interface AlgebraView extends Editing, SetLabels { /** * Returns whether this view is currently visible * * @return whether this view is currently visible */ public boolean isVisible(); public void startEditItem(GeoElement geo); public boolean isEditItem(); // For WebSimple public GeoElement getDraggedGeo(); /** * DEPENDENCY: Tree mode where the objects are categorized by their * dependency (free, dependent, auxiliary) -- default value TYPE: Tree mode * where the objects are categorized by their type (points, circles, ..) * VIEW: Tree mode where the objects are categorized by the view on which * their value is computed (xOyPlane, space, ...) ORDER: Construction * Protocol order */ public static enum SortMode { DEPENDENCY { @Override public String toString() { return "Dependency"; } }, TYPE { @Override public String toString() { return "ObjectType"; } }, VIEW { @Override public String toString() { return "View"; } }, ORDER { @Override public String toString() { return "ConstructionOrder"; } }, LAYER { @Override public String toString() { return "Layer"; } }; public static SortMode fromInt(int mode) { switch (mode) { case 0: return SortMode.DEPENDENCY; case 1: return SortMode.TYPE; case 2: return SortMode.LAYER; case 3: return SortMode.ORDER; } return SortMode.TYPE; } public int toInt() { switch (this) { case DEPENDENCY: return 0; case TYPE: return 1; case LAYER: return 2; case ORDER: return 3; } return 1; } } public void setFocus(boolean b); public GeoElement getLastSelectedGeo(); public void setLastSelectedGeo(GeoElement geo); public boolean isAttachedToKernel(); public SortMode getTreeMode(); void setTreeMode(SortMode value); /** * This is just used from Html5/Web, but interface is in Common * * @param visible * whether to show AV input */ public void setShowAlgebraInput(boolean visible); }