use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class IDEF0Object method createEditFrame.
@Override
protected void createEditFrame() {
final GUIFramework framework = movingArea.getPanel().getFramework();
final Engine engine = framework.getEngine();
long id = getFunction().getLink();
Element element2 = null;
if (id >= 0)
element2 = engine.getElement(id);
if (element2 == null)
element2 = getFunction().getElement();
final Element element = element2;
Qualifier qualifier = engine.getQualifier(element.getQualifierId());
Attribute name = null;
if (qualifier.getAttributeForName() >= 0)
name = engine.getAttribute(qualifier.getAttributeForName());
if (name == null) {
JOptionPane.showMessageDialog(framework.getMainFrame(), ResourceLoader.getString("NameAttributeNotSet"));
return;
}
final Attribute nameAttribute = name;
AttributePlugin plugin = framework.findAttributePlugin(name);
final AttributeEditor editor = plugin.getAttributeEditor(engine, framework.getAccessRules(), element, name, "activity_name", null);
setTextComponent(new JScrollPane(editor.getLastComponent()));
final Object value = engine.getAttribute(element, name);
editor.setValue(value);
final Rectangle r = movingArea.getIBounds(getBounds());
final JTextArea textArea = (JTextArea) editor.getLastComponent();
processTextArea(textArea);
// textArea.setBackground(getFunction().getBackground());
// textArea.setForeground(getFunction().getForeground());
// textArea.setFont(movingArea.getFont(getFont()));
// textArea.setCaretColor(getFunction().getForeground());
final JPopupMenu menu = textArea.getComponentPopupMenu();
textArea.setComponentPopupMenu(null);
movingArea.getPanel().setActionDisable(true);
textArea.addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_ENTER && e.isControlDown()) {
stopEdit(element, engine, nameAttribute, editor, value, textArea, menu);
} else if (e.getKeyCode() == KeyEvent.VK_ESCAPE)
cancelEdit(editor, textArea, menu);
}
});
textArea.addFocusListener(new FocusListener() {
@Override
public void focusLost(FocusEvent e) {
stopEdit(element, engine, nameAttribute, editor, value, textArea, menu);
}
@Override
public void focusGained(FocusEvent e) {
}
});
movingArea.add(getTextComponent());
movingArea.setbImage(null);
getTextComponent().setBounds(r);
movingArea.revalidate();
movingArea.repaint();
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
textArea.requestFocus();
}
});
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class TablePlugin method getAttributePreferenciesEditor.
@Override
public AttributePreferenciesEditor getAttributePreferenciesEditor() {
return new AttributePreferenciesEditor() {
private SelectableTableView view;
private AttributeOrderEditPanel attributeOrderEditPanel = new AttributeOrderEditPanel(new ArrayList<Attribute>(), true);
private Action createAttributeAction = new AbstractAction() {
/**
*/
private static final long serialVersionUID = -2190162251129929137L;
{
this.putValue(ACTION_COMMAND_KEY, "CreateAttribute");
this.putValue(SMALL_ICON, new ImageIcon(getClass().getResource("/com/ramussoft/gui/table/add.png")));
this.putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_ADD, KeyEvent.CTRL_MASK));
}
@Override
public void actionPerformed(ActionEvent e) {
new AttributePreferenciesDialog(framework).setVisible(true);
}
};
private Action deleteAttributeAction = new AbstractAction() {
{
this.putValue(ACTION_COMMAND_KEY, "DeleteAttribute");
this.putValue(SMALL_ICON, new ImageIcon(getClass().getResource("/com/ramussoft/gui/table/delete.png")));
this.putValue(ACCELERATOR_KEY, KeyStroke.getKeyStroke(KeyEvent.VK_DELETE, 0));
}
/**
*/
private static final long serialVersionUID = 895892525217269346L;
@Override
public void actionPerformed(ActionEvent e) {
if (JOptionPane.showConfirmDialog(framework.getMainFrame(), GlobalResourcesManager.getString("DeleteActiveElementsDialog.Warning"), UIManager.getString("OptionPane.titleText"), JOptionPane.YES_NO_OPTION) == JOptionPane.YES_OPTION) {
TreePath[] paths = view.getComponent().getTable().getTreeSelectionModel().getSelectionPaths();
if (paths.length == 0) {
System.err.println("Trying to delete element, but no elements are selected");
return;
}
for (TreePath path : paths) {
Row row = ((TreeTableNode) path.getLastPathComponent()).getRow();
if (row == null) {
System.err.println("Trying to delete node, which conatain no row");
return;
}
long attrId = (Long) row.getAttribute((Attribute) view.getComponent().getRowSet().getEngine().getPluginProperty("Core", StandardAttributesPlugin.ATTRIBUTE_ID));
view.getComponent().getRowSet().startUserTransaction();
view.getComponent().getRowSet().getEngine().deleteAttribute(attrId);
view.getComponent().getRowSet().commitUserTransaction();
}
}
}
};
@Override
public void apply(Attribute attribute, Engine engine, AccessRules accessRules) {
String qualifierName = StandardAttributesPlugin.getTableQualifeirName(attribute);
Qualifier qualifier = engine.getSystemQualifier(qualifierName);
if (qualifier == null) {
qualifier = engine.createSystemQualifier();
qualifier.setName(qualifierName);
}
List<Attribute> attributes = attributeOrderEditPanel.getAttributes();
fillAttributes(engine, attributes);
qualifier.setAttributes(attributes);
qualifier.getSystemAttributes().clear();
qualifier.getSystemAttributes().add(StandardAttributesPlugin.getTableElementIdAttribute(engine));
engine.updateQualifier(qualifier);
List<TableGroupablePropertyPersistent> list = new ArrayList<TableGroupablePropertyPersistent>();
int i = 0;
for (String group : attributeOrderEditPanel.getAttributeGroups()) {
if (group != null) {
TableGroupablePropertyPersistent p = new TableGroupablePropertyPersistent();
p.setAttribute(attribute.getId());
p.setName(group);
p.setOtherAttribute(attributes.get(i).getId());
list.add(p);
}
i++;
}
engine.setAttribute(null, attribute, list);
}
private void fillAttributes(Engine engine, List<Attribute> attributes) {
List<Row> rows = view.getSelectedRows();
ArrayList<Attribute> toRemove = new ArrayList<Attribute>(attributes);
for (Row row : rows) {
Attribute attr = StandardAttributesPlugin.getAttribute(engine, row.getElement());
toRemove.remove(attr);
if (attributes.indexOf(attr) < 0)
attributes.add(attr);
}
for (Attribute attribute : toRemove) attributes.remove(attribute);
}
@Override
public boolean canApply() {
return view.getSelectedRows().size() > 0;
}
@SuppressWarnings("unchecked")
@Override
public JComponent createComponent(Attribute attribute, final Engine engine, AccessRules accessRules) {
view = new SelectableTableView(framework, engine, accessRules, StandardAttributesPlugin.getAttributesQualifier(engine)) {
@Override
protected Attribute[] getAttributes() {
return new Attribute[] { StandardAttributesPlugin.getAttributeNameAttribute(engine), StandardAttributesPlugin.getAttributeTypeNameAttribute(engine) };
}
};
JComponent component = view.createComponent();
view.getComponent().getModel().setEditable(0, false);
view.getComponent().getModel().setEditable(1, false);
JTabbedPane pane = new JTabbedPane();
pane.addTab(GlobalResourcesManager.getString("attributes"), component);
pane.addTab(GlobalResourcesManager.getString("AttributesOrder"), attributeOrderEditPanel);
pane.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
fillAttributes(engine, attributeOrderEditPanel.getAttributes());
attributeOrderEditPanel.refresh();
}
});
if (attribute != null) {
Qualifier qualifier = StandardAttributesPlugin.getTableQualifierForAttribute(engine, attribute);
attributeOrderEditPanel.setAttributes(qualifier.getAttributes());
Hashtable<Attribute, String> groups = new Hashtable<Attribute, String>();
List<TableGroupablePropertyPersistent> pList = (List) engine.getAttribute(null, attribute);
for (TableGroupablePropertyPersistent p : pList) for (Attribute attribute2 : qualifier.getAttributes()) {
if ((p.getOtherAttribute() == attribute2.getId()) && (p.getName() != null))
groups.put(attribute2, p.getName());
}
attributeOrderEditPanel.setGroups(groups);
List<Row> list = view.getComponent().getRowSet().getAllRows();
for (Row row : list) {
Attribute attr = StandardAttributesPlugin.getAttribute(engine, row.getElement());
if (qualifier.getAttributes().indexOf(attr) >= 0) {
view.setSelectedRow(row, true);
}
}
}
view.getComponent().getTable().setComponentPopupMenu(createPopupMenu());
return pane;
}
private JPopupMenu createPopupMenu() {
JPopupMenu menu = new JPopupMenu();
for (Action action : getActions()) {
if (action == null)
menu.addSeparator();
else {
action.putValue(Action.NAME, GlobalResourcesManager.getString((String) action.getValue(Action.ACTION_COMMAND_KEY)));
menu.add(action);
}
}
return menu;
}
private Action[] getActions() {
return new Action[] { createAttributeAction, new AbstractAction() {
/**
*/
private static final long serialVersionUID = 3284967628905643862L;
{
this.putValue(ACTION_COMMAND_KEY, "Action.SortByName");
this.putValue(SMALL_ICON, new ImageIcon(getClass().getResource("/com/ramussoft/gui/table/sort-incr.png")));
}
@Override
public void actionPerformed(ActionEvent e) {
view.getComponent().getRowSet().startUserTransaction();
view.getComponent().getRowSet().sortByName();
view.getComponent().getRowSet().commitUserTransaction();
}
}, deleteAttributeAction };
}
};
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class ElistTabView method close.
@Override
public void close() {
Engine engine = framework.getEngine();
super.close();
Properties properties = new Properties();
Options.setBoolean("REVERT", revert, properties);
Options.saveOptions(component, properties);
engine.setProperties(getProperiesName(), properties);
left.close();
right.close();
engine.removeAttributeListener(listener);
engine.removeElementAttributeListener(q1, leftAttributeListener);
engine.removeElementAttributeListener(q2, rightAttributeListener);
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class CurrencyAttributePlugin method getAttributePreferenciesEditor.
@Override
public AttributePreferenciesEditor getAttributePreferenciesEditor() {
return new AttributePreferenciesEditor() {
private JComboBox comboBox = new JComboBox();
@Override
public JComponent createComponent(Attribute attribute, Engine engine, AccessRules accessRules) {
CurrencyPropertyPersistent p = null;
if (attribute != null)
p = (CurrencyPropertyPersistent) engine.getAttribute(null, attribute);
comboBox.addItem(GlobalResourcesManager.getString("ByDefault"));
int i = 1;
int index = 0;
for (Currency currency : getCurrencies()) {
comboBox.addItem(currency);
if ((p != null) && (p.getCode() != null) && (p.getCode().equals(currency.getCurrencyCode())))
index = i;
i++;
}
comboBox.setSelectedIndex(index);
double[][] size = { { 5, TableLayout.MINIMUM, 5, TableLayout.FILL, 5 }, { 5, TableLayout.MINIMUM, 5 } };
TableLayout layout = new TableLayout(size);
JPanel panel = new JPanel(layout);
panel.add(new JLabel(GlobalResourcesManager.getString("Attribute.CurrencyCode")), "1,1");
panel.add(comboBox, "3,1");
return panel;
}
@Override
public boolean canApply() {
return true;
}
@Override
public void apply(Attribute attribute, Engine engine, AccessRules accessRules) {
if (comboBox.getSelectedIndex() == 0) {
engine.setAttribute(null, attribute, null);
} else {
CurrencyPropertyPersistent p = new CurrencyPropertyPersistent();
p.setCode(((Currency) comboBox.getSelectedItem()).getCurrencyCode());
engine.setAttribute(null, attribute, p);
}
}
};
}
use of com.ramussoft.common.Engine in project ramus by Vitaliy-Yakovchuk.
the class TableEditorTable method setModel.
@Override
public void setModel(TableModel dataModel) {
super.setModel(dataModel);
if (!(dataModel instanceof TableEditorModel))
return;
TableEditorModel model = (TableEditorModel) dataModel;
Engine engine = framework.getEngine();
AccessRules rules = framework.getAccessRules();
for (int i = 0; i < plugins.length; i++) {
AttributePlugin plugin = framework.findAttributePlugin(attributes.get(i));
plugins[i] = plugin;
cellEditors[i] = plugin.getTableCellEditor(engine, rules, attributes.get(i));
if (cellEditors[i] == null) {
cellEditors[i] = new DialogedTableCellEditor(engine, rules, attributes.get(i), plugins[i], framework);
model.setSaveValue(i, false);
}
cellRenderers[i] = plugin.getTableCellRenderer(engine, rules, attributes.get(i));
}
}
Aggregations