package org.geogebra.common.kernel.commands; import org.geogebra.common.kernel.Kernel; import org.geogebra.common.kernel.advanced.CmdAffineRatio; import org.geogebra.common.kernel.advanced.CmdApplyMatrix; import org.geogebra.common.kernel.advanced.CmdAreCollinear; import org.geogebra.common.kernel.advanced.CmdAreConcurrent; import org.geogebra.common.kernel.advanced.CmdAreConcyclic; import org.geogebra.common.kernel.advanced.CmdAreCongruent; import org.geogebra.common.kernel.advanced.CmdAreEqual; import org.geogebra.common.kernel.advanced.CmdAreParallel; import org.geogebra.common.kernel.advanced.CmdArePerpendicular; import org.geogebra.common.kernel.advanced.CmdAsymptote; import org.geogebra.common.kernel.advanced.CmdAttachCopyToView; import org.geogebra.common.kernel.advanced.CmdAxes; import org.geogebra.common.kernel.advanced.CmdAxisStepX; import org.geogebra.common.kernel.advanced.CmdAxisStepY; import org.geogebra.common.kernel.advanced.CmdCentroid; import org.geogebra.common.kernel.advanced.CmdClosestPoint; import org.geogebra.common.kernel.advanced.CmdCommonDenominator; import org.geogebra.common.kernel.advanced.CmdCompleteSquare; import org.geogebra.common.kernel.advanced.CmdComplexRoot; import org.geogebra.common.kernel.advanced.CmdConstructionStep; import org.geogebra.common.kernel.advanced.CmdContinuedFraction; import org.geogebra.common.kernel.advanced.CmdCrossRatio; import org.geogebra.common.kernel.advanced.CmdCurvature; import org.geogebra.common.kernel.advanced.CmdCurvatureVector; import org.geogebra.common.kernel.advanced.CmdDeterminant; import org.geogebra.common.kernel.advanced.CmdDimension; import org.geogebra.common.kernel.advanced.CmdDirectrix; import org.geogebra.common.kernel.advanced.CmdDivision; import org.geogebra.common.kernel.advanced.CmdDivisorsList; import org.geogebra.common.kernel.advanced.CmdDivisorsOrDivisorsSum; import org.geogebra.common.kernel.advanced.CmdDynamicCoordinates; import org.geogebra.common.kernel.advanced.CmdEccentricity; import org.geogebra.common.kernel.advanced.CmdExcentricity; import org.geogebra.common.kernel.advanced.CmdFactors; import org.geogebra.common.kernel.advanced.CmdFinancialFV; import org.geogebra.common.kernel.advanced.CmdFinancialNper; import org.geogebra.common.kernel.advanced.CmdFinancialPV; import org.geogebra.common.kernel.advanced.CmdFinancialPmt; import org.geogebra.common.kernel.advanced.CmdFinancialRate; import org.geogebra.common.kernel.advanced.CmdFirstAxis; import org.geogebra.common.kernel.advanced.CmdFirstAxisLength; import org.geogebra.common.kernel.advanced.CmdFlatten; import org.geogebra.common.kernel.advanced.CmdFromBase; import org.geogebra.common.kernel.advanced.CmdIdentity; import org.geogebra.common.kernel.advanced.CmdImplicitPoly; import org.geogebra.common.kernel.advanced.CmdImplicitSurface; import org.geogebra.common.kernel.advanced.CmdIncircle; import org.geogebra.common.kernel.advanced.CmdIndexOf; import org.geogebra.common.kernel.advanced.CmdInsert; import org.geogebra.common.kernel.advanced.CmdIntersectPath; import org.geogebra.common.kernel.advanced.CmdIntersection; import org.geogebra.common.kernel.advanced.CmdInvert; import org.geogebra.common.kernel.advanced.CmdIsInRegion; import org.geogebra.common.kernel.advanced.CmdIsPrime; import org.geogebra.common.kernel.advanced.CmdIteration; import org.geogebra.common.kernel.advanced.CmdIterationList; import org.geogebra.common.kernel.advanced.CmdLeftRightSide; import org.geogebra.common.kernel.advanced.CmdMatrixRank; import org.geogebra.common.kernel.advanced.CmdMaximize; import org.geogebra.common.kernel.advanced.CmdMinimize; import org.geogebra.common.kernel.advanced.CmdNSolveODE; import org.geogebra.common.kernel.advanced.CmdNumeratorDenominator; import org.geogebra.common.kernel.advanced.CmdOrdinal; import org.geogebra.common.kernel.advanced.CmdOsculatingCircle; import org.geogebra.common.kernel.advanced.CmdParameter; import org.geogebra.common.kernel.advanced.CmdPathParameter; import org.geogebra.common.kernel.advanced.CmdPolar; import org.geogebra.common.kernel.advanced.CmdPrimeFactors; import org.geogebra.common.kernel.advanced.CmdProve; import org.geogebra.common.kernel.advanced.CmdProveDetails; import org.geogebra.common.kernel.advanced.CmdReducedRowEchelonForm; import org.geogebra.common.kernel.advanced.CmdRootList; import org.geogebra.common.kernel.advanced.CmdRoots; import org.geogebra.common.kernel.advanced.CmdRotateText; import org.geogebra.common.kernel.advanced.CmdScientificText; import org.geogebra.common.kernel.advanced.CmdSecondAxis; import org.geogebra.common.kernel.advanced.CmdSecondAxisLength; import org.geogebra.common.kernel.advanced.CmdSelectedElement; import org.geogebra.common.kernel.advanced.CmdSelectedIndex; import org.geogebra.common.kernel.advanced.CmdSetConstructionStep; import org.geogebra.common.kernel.advanced.CmdSlopeField; import org.geogebra.common.kernel.advanced.CmdTaylorSeries; import org.geogebra.common.kernel.advanced.CmdToBase; import org.geogebra.common.kernel.advanced.CmdToComplexPolar; import org.geogebra.common.kernel.advanced.CmdTranspose; import org.geogebra.common.kernel.advanced.CmdUnion; import org.geogebra.common.kernel.advanced.CmdUnique; import org.geogebra.common.kernel.advanced.CmdVerticalText; import org.geogebra.common.kernel.advanced.CmdZip; import org.geogebra.common.kernel.algos.CmdUnitVector; import org.geogebra.common.main.Feature; /** * class to split off some CmdXXX classes into another jar (for faster applet * loading) * */ public class CommandDispatcherAdvanced implements CommandDispatcherInterface { @Override public CommandProcessor dispatch(Commands c, Kernel kernel) { switch (c) { // advanced case Factors: return new CmdFactors(kernel); case IntersectPath: case IntersectRegion: // deprecated return new CmdIntersectPath(kernel); case Direction: return new CmdUnitVector(kernel, false); case Difference: return new CmdDifference(kernel); case TaylorPolynomial: case TaylorSeries: return new CmdTaylorSeries(kernel); case SecondAxis: case MinorAxis: return new CmdSecondAxis(kernel); case ContourPlot: return !kernel.getApplication().has(Feature.CONTOUR_PLOT_COMMAND) ? null : new CmdContourPlot(kernel); case SemiMinorAxisLength: case SecondAxisLength: return new CmdSecondAxisLength(kernel); case Directrix: return new CmdDirectrix(kernel); case Numerator: return new CmdNumeratorDenominator(kernel, c); case Denominator: return new CmdNumeratorDenominator(kernel, c); case ComplexRoot: return new CmdComplexRoot(kernel); case SlopeField: return new CmdSlopeField(kernel); case Iteration: return new CmdIteration(kernel); case PathParameter: return new CmdPathParameter(kernel); case Asymptote: return new CmdAsymptote(kernel); case CurvatureVector: return new CmdCurvatureVector(kernel); case Curvature: return new CmdCurvature(kernel); case OsculatingCircle: return new CmdOsculatingCircle(kernel); case IterationList: return new CmdIterationList(kernel); case RootList: return new CmdRootList(kernel); case ImplicitCurve: return new CmdImplicitPoly(kernel); case ImplicitSurface: return !kernel.getApplication().has(Feature.IMPLICIT_SURFACES) ? null : new CmdImplicitSurface(kernel); case Roots: return new CmdRoots(kernel); case AffineRatio: return new CmdAffineRatio(kernel); case CrossRatio: return new CmdCrossRatio(kernel); case ClosestPoint: return new CmdClosestPoint(kernel); case IsInRegion: return new CmdIsInRegion(kernel); case PrimeFactors: return new CmdPrimeFactors(kernel); case CompleteSquare: return new CmdCompleteSquare(kernel); case Union: return new CmdUnion(kernel); case ScientificText: return new CmdScientificText(kernel); case VerticalText: return new CmdVerticalText(kernel); case RotateText: return new CmdRotateText(kernel); case Ordinal: return new CmdOrdinal(kernel); case Parameter: return new CmdParameter(kernel); case Incircle: return new CmdIncircle(kernel); case SelectedElement: return new CmdSelectedElement(kernel); case SelectedIndex: return new CmdSelectedIndex(kernel); case Unique: return new CmdUnique(kernel); case Zip: return new CmdZip(kernel); case Intersection: return new CmdIntersection(kernel); case PointList: return new CmdPointList(kernel); case ApplyMatrix: return new CmdApplyMatrix(kernel); case NInvert: if (!kernel.getApplication().has(Feature.NINVERT)) { return null; } return new CmdInvert(kernel, true); case Invert: return new CmdInvert(kernel, !kernel.getApplication().getSettings() .getCasSettings().isEnabled()); case Transpose: return new CmdTranspose(kernel); case ReducedRowEchelonForm: return new CmdReducedRowEchelonForm(kernel); case Determinant: return new CmdDeterminant(kernel); // case MatrixPlot: // return new CmdMatrixPlot(kernel); case Identity: return new CmdIdentity(kernel); case Centroid: return new CmdCentroid(kernel); case MajorAxis: case FirstAxis: return new CmdFirstAxis(kernel); case SemiMajorAxisLength: case FirstAxisLength: return new CmdFirstAxisLength(kernel); case AxisStepX: return new CmdAxisStepX(kernel); case AxisStepY: return new CmdAxisStepY(kernel); case ConstructionStep: return new CmdConstructionStep(kernel); case SetConstructionStep: return new CmdSetConstructionStep(kernel); case Polar: return new CmdPolar(kernel); case LinearEccentricity: case Excentricity: return new CmdExcentricity(kernel); case Eccentricity: return new CmdEccentricity(kernel); case Axes: return new CmdAxes(kernel); case IndexOf: return new CmdIndexOf(kernel); case Flatten: return new CmdFlatten(kernel); case Insert: return new CmdInsert(kernel); case Prove: return new CmdProve(kernel); case ProveDetails: return new CmdProveDetails(kernel); case DynamicCoordinates: return new CmdDynamicCoordinates(kernel); case Maximize: return new CmdMaximize(kernel); case Minimize: return new CmdMinimize(kernel); case AreCollinear: return new CmdAreCollinear(kernel); case AreParallel: return new CmdAreParallel(kernel); case AreConcyclic: return new CmdAreConcyclic(kernel); case ArePerpendicular: return new CmdArePerpendicular(kernel); case AreEqual: return new CmdAreEqual(kernel); case AreCongruent: return new CmdAreCongruent(kernel); case AreConcurrent: return new CmdAreConcurrent(kernel); case ToBase: return new CmdToBase(kernel); case FromBase: return new CmdFromBase(kernel); case ContinuedFraction: return new CmdContinuedFraction(kernel); case AttachCopyToView: return new CmdAttachCopyToView(kernel); case Divisors: return new CmdDivisorsOrDivisorsSum(kernel, false); case DivisorsSum: return new CmdDivisorsOrDivisorsSum(kernel, true); case Dimension: return new CmdDimension(kernel); case DivisorsList: return new CmdDivisorsList(kernel); case IsPrime: return new CmdIsPrime(kernel); case LeftSide: return new CmdLeftRightSide(kernel, true); case RightSide: return new CmdLeftRightSide(kernel, false); case Division: return new CmdDivision(kernel); case MatrixRank: return new CmdMatrixRank(kernel); case CommonDenominator: return new CmdCommonDenominator(kernel); case ToPoint: return new CmdToComplexPolar(kernel, Kernel.COORD_CARTESIAN); case ToComplex: return new CmdToComplexPolar(kernel, Kernel.COORD_COMPLEX); case ToPolar: return new CmdToComplexPolar(kernel, Kernel.COORD_POLAR); case NSolveODE: return new CmdNSolveODE(kernel); case Rate: return new CmdFinancialRate(kernel); case Periods: return new CmdFinancialNper(kernel); case Payment: return new CmdFinancialPmt(kernel); case PresentValue: return new CmdFinancialPV(kernel); case FutureValue: return new CmdFinancialFV(kernel); case SVD: return new CmdSVD(kernel); default: break; } return null; } }