package org.geogebra.common.gui.dialog.options;
import org.geogebra.common.euclidian.EuclidianView;
import org.geogebra.common.gui.dialog.options.model.AxisModel;
import org.geogebra.common.main.App;
/**
* Class for managing EV options in phone style
*
* @author mathieu
*
*/
public class OptionsEuclidianPhoneStyle extends OptionsEuclidian {
private AxisModel[] mAxisModel;
private EuclidianView view;
private int dimension;
/**
* constructor
*
* @param app
* application
* @param view
* euclidian view
*/
public OptionsEuclidianPhoneStyle(App app, EuclidianView view) {
this.view = view;
if (view.isEuclidianView3D()) {
dimension = 3;
} else {
dimension = 2;
}
// axes
mAxisModel = new AxisModel[dimension];
for (int i = 0; i < dimension; i++) {
mAxisModel[i] = new AxisModel(app, view, i, null);
}
}
public int getDimension() {
return dimension;
}
/**
*
* @return related euclidian view
*/
public EuclidianView getView() {
return view;
}
@Override
public void updateGUI() {
// TODO implement if needed
}
@Override
public void updateBounds() {
// TODO implement if needed
}
/**
*
* @return true if at least 1 axis label is shown
*/
public boolean getLabelShown() {
String[] labels = view.getAxesLabels(true);
for (int i = 0; i < labels.length; i++) {
if (labels[i] != null && labels[i].length() > 0) {
return true;
}
}
return false;
}
/**
*
* @return false if at least one axis hasn't auto distance
*/
public boolean isAutoDistance() {
boolean[] auto = view.isAutomaticAxesNumberingDistance();
for (int i = 0; i < auto.length; i++) {
if (!auto[i]) {
return false;
}
}
return true;
}
/**
* perform "show all objects" on view
*/
public void setViewShowAllObjects() {
view.setViewShowAllObjects(true, false);
}
/**
* perform "set standard view" on view
*/
public void setStandardView() {
view.setStandardView(true);
}
/**
*
* @param i
* index
* @return i-th axis model
*/
public AxisModel getAxisModel(int i) {
return mAxisModel[i];
}
public void updateAxesLabels(String[] labels) {
if (labels == null) {
for (int i = 0; i < mAxisModel.length; i++) {
mAxisModel[i].applyAxisLabel("");
}
} else {
for (int i = 0; i < mAxisModel.length; i++) {
mAxisModel[i].applyAxisLabel(labels[i]);
}
}
}
private static final String[] EDIT_TEXT_DEFAULT = {"x", "y", "z"};
public String getAxisLabel(int i) {
String text = getView().getAxisLabel(i, true);
if (text == null || text.equals("")) {
return EDIT_TEXT_DEFAULT[i];
}
return text;
}
}