use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class StreamAttributePlugin method getAttributeEditor.
@Override
public AttributeEditor getAttributeEditor(final Engine engine, final AccessRules rules, final Element element, final Attribute attribute, AttributeEditor old) {
if (old != null)
old.close();
return new AbstractAttributeEditor() {
private SectorRowsEditor sectorRowsEditor;
private SectorNameEditor sectorNameEditor;
private PaintSector.Pin pin;
private DataPlugin dataPlugin;
private PaintSector sector;
private JTabbedPane component;
{
dataPlugin = NDataPluginFactory.getDataPlugin(null, engine, rules);
Sector sector = dataPlugin.findSectorByGlobalId(GlobalId.create(element.getId()));
if (sector != null) {
dataPlugin = NDataPluginFactory.getDataPlugin(engine.getQualifier(sector.getFunction().getElement().getQualifierId()), engine, rules);
component = new JTabbedPane();
sectorRowsEditor = new SectorRowsEditor(dataPlugin, framework, rules);
sectorNameEditor = new SectorNameEditor(dataPlugin, framework, rules) {
@Override
public Stream getStream() {
return sectorRowsEditor.getStream();
}
};
sectorRowsEditor.setSectorNameEditor(sectorNameEditor);
component.addTab(ResourceLoader.getString("stream"), null, sectorRowsEditor, null);
component.addTab(ResourceLoader.getString("name"), null, sectorNameEditor, null);
ResourceLoader.setJComponentsText(sectorRowsEditor);
ResourceLoader.setJComponentsText(sectorNameEditor);
}
}
@Override
public Object setValue(Object value) {
this.pin = (PaintSector.Pin) value;
sector = pin.getSector();
sectorNameEditor.setSector(sector.getSector());
sectorRowsEditor.setSector(sector.getSector());
return value;
}
@Override
public Object getValue() {
return pin;
}
@Override
public JComponent getComponent() {
if (component == null)
return new JPanel();
return component;
}
@Override
public JComponent getLastComponent() {
return component;
}
@Override
public void apply(Engine engine, Element element, Attribute attribute, Object value) {
sector.setShowText(sectorNameEditor.getBox().isSelected());
sector.setAlternativeText(sectorNameEditor.getAlternativeTextField().getText());
Stream stream = sectorRowsEditor.getStream();
if (stream == null) {
stream = sectorNameEditor.findStreamByName();
if (stream == null) {
stream = (Stream) dataPlugin.createRow(dataPlugin.getBaseStream(), true);
}
}
final String t = sectorNameEditor.getArrowName();
if (!t.equals("")) {
if (!t.equals(stream.getName()) && sectorNameEditor.findStreamByName(stream.getName()) != null) {
stream = (Stream) dataPlugin.createRow(dataPlugin.getBaseStream(), true);
}
}
if (t.equals("")) {
if (!stream.isEmptyName()) {
stream = (Stream) dataPlugin.createRow(dataPlugin.getBaseStream(), true);
stream.setEmptyName(true);
}
} else
stream.setName(t);
final Row[] added = stream.getAdded();
stream.setRows(sectorRowsEditor.getRows());
sector.setStream(stream, sectorNameEditor.getReplaceStreamType());
stream = sector.getStream();
stream.setRows(added);
// sector.setStreamAddedByRefactor(false);
final Row[] rs = sectorRowsEditor.getRows();
sector.setRows(rs);
sector.createTexts();
PaintSector.save(sector, new DataLoader.MemoryData(), engine);
sector.getMovingArea().getRefactor().setUndoPoint();
sectorNameEditor.setChanged(false);
}
@Override
public boolean canApply() {
final boolean b = isSave();
if (b) {
if (!isOkStreamName()) {
if (JOptionPane.showConfirmDialog(component, ResourceLoader.getString("you_entered_exists_stream_continue"), ResourceLoader.getString("warning"), JOptionPane.YES_NO_OPTION) != JOptionPane.YES_OPTION)
return false;
}
} else {
JOptionPane.showMessageDialog(component, ResourceLoader.getString("you_should_enter_name_or_at_least_on_added_elemen"));
return false;
}
return b;
}
private boolean isSave() {
final Row[] rs = sectorRowsEditor.getRows();
final boolean b = rs.length > 0 || !sectorNameEditor.getArrowName().equals("");
return b;
}
private boolean isOkStreamName() {
final Stream stream = sectorNameEditor.findStreamByName();
if (stream != null)
return stream.equals(sectorNameEditor.getNullStream());
return true;
}
@Override
public boolean isSaveAnyway() {
return sectorRowsEditor.isChanged() || sectorNameEditor.isChanged();
}
@Override
public void close() {
super.close();
sectorRowsEditor.dispose();
}
};
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class LineStyleAttributePlugin method getAttributeEditor.
@Override
public AttributeEditor getAttributeEditor(final Engine engine, final AccessRules rules, final Element element, final Attribute attribute, AttributeEditor old) {
if (old != null)
old.close();
return new AbstractAttributeEditor() {
private PaintSector.Pin pin;
private LineStyleChooser component;
private Stroke stroke;
{
component = new LineStyleChooser();
}
@Override
public Object setValue(Object value) {
this.pin = (PaintSector.Pin) value;
stroke = pin.getSector().getStroke();
component.setStroke(stroke);
return value;
}
@Override
public Object getValue() {
return pin;
}
@Override
public void apply(Engine engine, Element element, Attribute attribute, Object value) {
LineStyleAttributePlugin.this.apply(component.getStroke(), pin);
}
@Override
public JComponent getComponent() {
return component;
}
@Override
public boolean isSaveAnyway() {
return !stroke.equals(component.getStroke());
}
};
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class ElementAttributesEditor method clearListeners.
private void clearListeners() {
Engine engine = framework.getEngine();
engine.removeQualifierListener(qualifierListener);
engine.removeElementAttributeListener(currentQualifier, elementAttributeListener);
engine.removeElementListener(currentQualifier, elementListener);
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class ElementAttributesEditor method reload.
protected void reload() {
CloseEvent event = new CloseEvent(this);
CloseListener[] listeners = getCloseListeners();
for (CloseListener listener : listeners) {
listener.closed(event);
removeCloseListener(listener);
}
loadCurrentQualifierAttributes();
Engine engine = framework.getEngine();
AccessRules rules = framework.getAccessRules();
getters = new ValueGetter[attributes.size()];
renderers = new TableCellRenderer[attributes.size()];
values = new Object[attributes.size()];
saveValues = new boolean[attributes.size()];
Arrays.fill(saveValues, true);
Arrays.fill(getters, new ValueGetter() {
@Override
public Object getValue(TableNode node, int index) {
return node.getValueAt(index);
}
});
for (int i = 0; i < attributes.size(); i++) {
Attribute attr = attributes.get(i).attribute;
AttributePlugin plugin = framework.findAttributePlugin(attr);
if (plugin instanceof TabledAttributePlugin) {
ValueGetter getter = ((TabledAttributePlugin) plugin).getValueGetter(attr, engine, framework, this);
if (getter != null)
getters[i] = getter;
}
renderers[i] = plugin.getTableCellRenderer(engine, rules, attr);
}
loadElement();
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class ElementAttributesEditor method loadElement.
protected void loadElement() {
loadCurrentQualifierAttributes();
Engine engine = framework.getEngine();
for (int i = 0; i < attributes.size(); i++) {
Attribute attr = attributes.get(i).attribute;
values[i] = engine.getAttribute(currentElement, attr);
}
synchronized (lock) {
table.getSelectionModel().removeListSelectionListener(listSelectionListener);
model.fireTableDataChanged();
table.getSelectionModel().addListSelectionListener(listSelectionListener);
}
}
Aggregations