WarpPI/core/src/main/java/it/cavallium/warppi/gui/expression/blocks/Block.java

88 lines
2.0 KiB
Java

package it.cavallium.warppi.gui.expression.blocks;
import it.cavallium.warppi.gui.GraphicalElement;
import it.cavallium.warppi.gui.expression.Caret;
import it.cavallium.warppi.gui.expression.ExtraMenu;
import it.cavallium.warppi.gui.graphicengine.GraphicEngine;
import it.cavallium.warppi.gui.graphicengine.Renderer;
import it.cavallium.warppi.math.MathContext;
import it.cavallium.warppi.math.parser.features.interfaces.Feature;
import it.cavallium.warppi.util.Error;
public abstract class Block implements TreeBlock, GraphicalElement {
protected boolean small;
protected int width;
protected int height;
protected int line;
protected TreeContainer parent;
/**
*
* @param r
* Graphic Renderer class.
* @param x
* Position relative to the window.
* @param y
* Position relative to the window.
* @param small
*/
public abstract void draw(GraphicEngine ge, Renderer r, int x, int y, Caret caret);
public abstract boolean putBlock(Caret caret, Block newBlock);
public abstract boolean delBlock(Caret caret);
public abstract BlockReference<?> getBlock(Caret caret);
@Override
public abstract void recomputeDimensions();
public abstract int computeCaretMaxBound();
@Override
public int getWidth() {
return width;
}
@Override
public int getHeight() {
return height;
}
@Override
public int getLine() {
return line;
}
public int getCaretDeltaPositionAfterCreation() {
return 1;
}
public boolean isSmall() {
return small;
}
public abstract void setSmall(boolean small);
public ExtraMenu<?> getExtraMenu() {
return null;
}
public abstract Feature toFeature(MathContext context) throws Error;
@Override
public TreeContainer getParentContainer() {
return parent;
}
@Override
public boolean hasParent() {
return parent != null;
}
public void setParent(final TreeContainer parent) {
this.parent = parent;
}
}