use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method refreshTransformationsTable.
private void refreshTransformationsTable() {
final int COL_TRANSFORM = 0;
final int COL_VARIATIONS = 1;
final int COL_WEIGHT = 2;
if (data.toggleTriangleWithColorsButton.isSelected()) {
data.transformationsTable.setDefaultRenderer(Object.class, new TransformationsTableCellRenderer());
} else {
data.transformationsTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer());
}
data.transformationsTable.setModel(new DefaultTableModel() {
private static final long serialVersionUID = 1L;
@Override
public int getRowCount() {
return getCurrLayer() != null ? getCurrLayer().getXForms().size() + getCurrLayer().getFinalXForms().size() : 0;
}
@Override
public int getColumnCount() {
return 3;
}
@Override
public String getColumnName(int columnIndex) {
switch(columnIndex) {
case COL_TRANSFORM:
return "Transf";
case COL_VARIATIONS:
return "Variations/Name";
case COL_WEIGHT:
return "Weight";
}
return null;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
if (getCurrFlame() != null) {
XForm xForm = rowIndex < getCurrLayer().getXForms().size() ? getCurrLayer().getXForms().get(rowIndex) : getCurrLayer().getFinalXForms().get(rowIndex - getCurrLayer().getXForms().size());
switch(columnIndex) {
case COL_TRANSFORM:
return rowIndex < getCurrLayer().getXForms().size() ? "Transf" + String.valueOf(rowIndex + 1) : "Final" + String.valueOf(rowIndex - getCurrLayer().getXForms().size() + 1);
case COL_VARIATIONS:
return getXFormCaption(xForm);
case COL_WEIGHT:
return rowIndex < getCurrLayer().getXForms().size() ? Tools.doubleToString(xForm.getWeight()) : "";
}
}
return null;
}
@Override
public boolean isCellEditable(int row, int column) {
return column == COL_WEIGHT;
}
@Override
public void setValueAt(Object aValue, int row, int column) {
if (getCurrLayer() != null && column == COL_WEIGHT && row < getCurrLayer().getXForms().size()) {
XForm xForm = getCurrLayer().getXForms().get(row);
String valStr = (String) aValue;
if (valStr == null || valStr.length() == 0) {
valStr = "0";
}
saveUndoPoint();
xForm.setWeight(Tools.stringToDouble(valStr));
refreshXFormUI(xForm);
refreshFlameImage(true, false, 1, true, false);
}
super.setValueAt(aValue, row, column);
}
});
data.transformationsTable.getTableHeader().setFont(data.transformationsTable.getFont());
data.transformationsTable.getColumnModel().getColumn(COL_TRANSFORM).setWidth(20);
data.transformationsTable.getColumnModel().getColumn(COL_VARIATIONS).setPreferredWidth(120);
data.transformationsTable.getColumnModel().getColumn(COL_WEIGHT).setWidth(16);
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method xFormModHueRandomizeBtn_Clicked.
public void xFormModHueRandomizeBtn_Clicked(boolean pWholeFractal) {
if (pWholeFractal) {
Flame flame = getCurrFlame();
if (flame != null) {
saveUndoPoint();
for (Layer layer : flame.getLayers()) {
for (XForm xForm : layer.getXForms()) {
xForm.randomizeModHue();
}
}
refreshXFormUI(getCurrXForm(XFormType.BOTH));
refreshFlameImage(true, false, 1, true, false);
}
} else {
XForm xForm = getCurrXForm(XFormType.NORMAL);
if (xForm != null) {
saveUndoPoint();
xForm.randomizeModHue();
refreshXFormUI(xForm);
refreshFlameImage(true, false, 1, true, false);
}
}
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method xFormTextFieldChanged.
private void xFormTextFieldChanged(JSlider pSlider, JWFNumberField pTextField, String pProperty, double pSliderScale) {
if (noRefresh) {
return;
}
XForm xForm = getCurrXForm();
if (xForm == null) {
return;
}
noRefresh = true;
try {
double propValue = Tools.stringToDouble(pTextField.getText());
pSlider.setValue(Tools.FTOI(propValue * pSliderScale));
Class<?> cls = xForm.getClass();
Field field;
try {
field = cls.getDeclaredField(pProperty);
field.setAccessible(true);
Class<?> fieldCls = field.getType();
if (fieldCls == double.class || fieldCls == Double.class) {
field.setDouble(xForm, propValue);
} else if (fieldCls == int.class || fieldCls == Integer.class) {
field.setInt(xForm, Tools.FTOI(propValue));
} else {
throw new IllegalStateException();
}
} catch (Throwable ex) {
ex.printStackTrace();
}
refreshFlameImage(true, false, 1, true, false);
} finally {
noRefresh = false;
}
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method xFormDrawModeCmb_changed.
public void xFormDrawModeCmb_changed() {
if (!cmbRefreshing) {
XForm xForm = getCurrXForm();
if (xForm != null && data.xFormDrawModeCmb.getSelectedItem() != null) {
xForm.setDrawMode((DrawMode) data.xFormDrawModeCmb.getSelectedItem());
refreshFlameImage(true, false, 1, true, false);
xFormControls.enableControls(xForm);
}
}
}
use of org.jwildfire.create.tina.base.XForm in project JWildfire by thargor6.
the class TinaController method transformationWeightREd_changed.
public void transformationWeightREd_changed() {
XForm xForm = getCurrXForm();
if (!gridRefreshing && xForm != null && getCurrLayer() != null && getCurrLayer().getFinalXForms().indexOf(xForm) < 0) {
xForm.setWeight(Tools.stringToDouble(data.transformationWeightREd.getText()));
gridRefreshing = true;
try {
int row = data.transformationsTable.getSelectedRow();
refreshTransformationsTable();
data.transformationsTable.getSelectionModel().setSelectionInterval(row, row);
refreshFlameImage(true, false, 1, true, false);
} finally {
gridRefreshing = false;
}
}
}
Aggregations