use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class TinaController method refreshRelWeightsTable.
private void refreshRelWeightsTable() {
final int COL_TRANSFORM = 0;
final int COL_WEIGHT = 1;
final int COL_FROM = 2;
final int COL_TO = 3;
data.relWeightsTable.setModel(new DefaultTableModel() {
private static final long serialVersionUID = 1L;
@Override
public int getRowCount() {
XForm xForm = getCurrXForm();
return xForm != null && getCurrLayer().getFinalXForms().indexOf(xForm) < 0 ? getCurrLayer().getXForms().size() : 0;
}
@Override
public int getColumnCount() {
return 4;
}
@Override
public String getColumnName(int columnIndex) {
switch(columnIndex) {
case COL_TRANSFORM:
return isXaosViewAsTo() ? "A to B" : "B from A";
case COL_WEIGHT:
return "Weight";
case COL_FROM:
return "From";
case COL_TO:
return "To";
}
return null;
}
@Override
public Object getValueAt(int rowIndex, int columnIndex) {
int transformIndex = data.transformationsTable.getSelectedRow();
Layer layer = getCurrLayer();
if (layer != null && transformIndex >= 0 && transformIndex < layer.getXForms().size()) {
if (isXaosViewAsTo()) {
switch(columnIndex) {
case COL_TRANSFORM:
return String.valueOf(transformIndex + 1) + " to " + String.valueOf(rowIndex + 1);
case COL_WEIGHT:
return Tools.doubleToString(layer.getXForms().get(transformIndex).getModifiedWeights()[rowIndex]);
case COL_FROM:
return getXFormCaption(layer.getXForms().get(transformIndex));
case COL_TO:
return getXFormCaption(layer.getXForms().get(rowIndex));
}
} else {
switch(columnIndex) {
case COL_TRANSFORM:
return String.valueOf(transformIndex + 1) + " from " + String.valueOf(rowIndex + 1);
case COL_WEIGHT:
return Tools.doubleToString(layer.getXForms().get(rowIndex).getModifiedWeights()[transformIndex]);
case COL_FROM:
return getXFormCaption(layer.getXForms().get(rowIndex));
case COL_TO:
return getXFormCaption(layer.getXForms().get(transformIndex));
}
}
}
return null;
}
@Override
public boolean isCellEditable(int row, int column) {
return column == COL_WEIGHT;
}
@Override
public void setValueAt(Object aValue, int row, int column) {
XForm xForm = getCurrXForm();
if (getCurrFlame() != null && column == COL_WEIGHT && xForm != null) {
String valStr = (String) aValue;
if (valStr == null || valStr.length() == 0) {
valStr = "0";
}
saveUndoPoint();
xForm.getModifiedWeights()[row] = Tools.stringToDouble(valStr);
relWeightsTableClicked();
refreshFlameImage(true, false, 1, true, false);
}
super.setValueAt(aValue, row, column);
}
});
data.relWeightsTable.getTableHeader().setFont(data.relWeightsTable.getFont());
data.relWeightsTable.getColumnModel().getColumn(COL_TRANSFORM).setWidth(20);
data.relWeightsTable.getColumnModel().getColumn(COL_WEIGHT).setWidth(16);
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class TinaController method addLayerBtn_clicked.
public void addLayerBtn_clicked() {
Flame flame = getCurrFlame();
Layer layer = new Layer();
RGBPalette palette = RandomGradientGeneratorList.getRandomGradientGeneratorInstance((String) data.paletteRandomGeneratorCmb.getSelectedItem()).generatePalette(Integer.parseInt(data.paletteRandomPointsREd.getText()), data.paletteFadeColorsCBx.isSelected(), data.paletteUniformWidthCBx.isSelected());
layer.setPalette(palette);
setLastGradient(palette);
saveUndoPoint();
flame.getLayers().add(layer);
gridRefreshing = true;
try {
refreshLayersTable();
} finally {
gridRefreshing = false;
}
int row = getCurrFlame().getLayers().size() - 1;
data.layersTable.getSelectionModel().setSelectionInterval(row, row);
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class TinaController method enableLayerControls.
private void enableLayerControls() {
Flame flame = getCurrFlame();
Layer layer = getCurrLayer();
data.layerWeightEd.setEnabled(layer != null);
data.layerAddBtn.setEnabled(flame != null);
data.layerDuplicateBtn.setEnabled(layer != null);
data.layerDeleteBtn.setEnabled(flame != null && layer != null && getCurrFlame().getLayers().size() > 1);
data.layersTable.setEnabled(flame != null);
data.layerVisibleBtn.setEnabled(layer != null);
data.layerAppendBtn.setEnabled(flame != null);
data.layerPreviewBtn.setEnabled(flame != null);
data.layerHideOthersBtn.setEnabled(layer != null);
data.layerShowAllBtn.setEnabled(flame != null);
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class TinaController method paletteSortBtn_clicked.
public void paletteSortBtn_clicked() {
Layer layer = getCurrLayer();
if (layer != null) {
saveUndoPoint();
layer.getPalette().sort();
refreshPaletteUI(layer.getPalette());
transformationChanged(true);
}
}
use of org.jwildfire.create.tina.base.Layer in project JWildfire by thargor6.
the class FlamePanel method drawTriangles.
private void drawTriangles(Graphics2D g) {
if (layerHolder != null) {
Layer layer = layerHolder.getLayer();
if (layer != null) {
if (!prefs.isTinaEditorControlsWithShadows()) {
g.setColor(config.isEditPostTransform() ? XFORM_POST_COLOR : FlamePanelConfig.XFORM_COLOR);
}
// draw the selected one at last
for (int pass = 0; pass < 2; pass++) {
for (int i = 0; i < layer.getXForms().size(); i++) {
XForm xForm = layer.getXForms().get(i);
if ((pass == 0 && (selectedXForm == null || xForm != selectedXForm)) || (pass == 1 && xForm == selectedXForm)) {
boolean isSelected = xForm == selectedXForm;
if (prefs.isTinaEditorControlsWithShadows()) {
g.setColor(SHADOW_COLOR);
drawXForm(g, xForm, i, layer.getXForms().size(), false, true, isSelected);
drawXForm(g, xForm, i, layer.getXForms().size(), false, false, isSelected);
} else {
drawXForm(g, xForm, i, layer.getXForms().size(), false, false, isSelected);
}
}
}
for (int i = 0; i < layer.getFinalXForms().size(); i++) {
XForm xForm = layer.getFinalXForms().get(i);
if ((pass == 0 && (selectedXForm == null || xForm != selectedXForm)) || (pass == 1 && xForm == selectedXForm)) {
boolean isSelected = xForm == selectedXForm;
if (prefs.isTinaEditorControlsWithShadows()) {
g.setColor(SHADOW_COLOR);
drawXForm(g, xForm, i, layer.getXForms().size(), true, true, isSelected);
drawXForm(g, xForm, i, layer.getXForms().size(), true, false, isSelected);
} else {
drawXForm(g, xForm, i, layer.getXForms().size(), true, false, isSelected);
}
}
}
if (selectedXForm == null) {
break;
}
}
}
}
}
Aggregations