use of com.ramussoft.pb.Row in project ramus by Vitaliy-Yakovchuk.
the class MovingArea method copyDFDSVisual.
protected void copyDFDSVisual() {
startUserTransaction();
DFDSRole role = (DFDSRole) activeObject;
VisualPanelImpl panelImpl = new VisualPanelImpl(role);
Stream stream = role.getStream();
Row[] oRows = stream.getAdded();
for (Row row : dataPlugin.getRecChilds(dataPlugin.getBaseFunction(), true)) if (row instanceof Function) {
final Function f = (Function) row;
if (f.getType() == Function.TYPE_DFDS_ROLE && f.getElement().getId() != role.getFunction().getElement().getId()) {
long l = f.getLink();
if (l >= 0) {
Stream s = (Stream) dataPlugin.findRowByGlobalId(l);
if (s != null && s.getAdded() != null) {
Row[] rows = s.getAdded();
boolean b = false;
for (Row row2 : rows) if (row2 != null) {
if (b)
break;
for (Row row3 : oRows) if (row3.equals(row2)) {
panelImpl.copyTo(new VisualPanel() {
@Override
public void setForegroundA(Color foreground) {
f.setForeground(foreground);
}
@Override
public void setFontA(Font font) {
f.setFont(font);
}
@Override
public void setBoundsA(FRectangle bounds) {
f.setBounds(bounds);
}
@Override
public void setBackgroundA(Color background) {
f.setBackground(background);
}
@Override
public Color getForegroundA() {
return f.getForeground();
}
@Override
public Font getFontA() {
return f.getFont();
}
@Override
public FRectangle getBoundsA() {
return f.getBounds();
}
@Override
public Color getBackgroundA() {
return f.getBackground();
}
}, copyOptions.copyBK, copyOptions.copyFK, copyOptions.copyFont, copyOptions.copySize);
b = true;
break;
}
}
}
}
}
}
commitUserTransaction();
}
use of com.ramussoft.pb.Row in project ramus by Vitaliy-Yakovchuk.
the class MovingArea method arrowCopyVisual.
public void arrowCopyVisual() {
startUserTransaction();
PaintSector.Pin pin = (PaintSector.Pin) activeObject;
Stream stream = pin.getSector().getStream();
Row[] oRows = stream.getAdded();
byte[] bs = pin.getSector().getSector().getVisualAttributes();
for (Sector f : dataPlugin.getAllSectors()) if (f.getStream() != null && f.getStream().getAdded() != null) {
Row[] rows = f.getStream().getAdded();
boolean b = false;
for (Row row2 : rows) if (row2 != null) {
if (b)
break;
for (Row row3 : oRows) if (row3.equals(row2)) {
f.setVisualAttributes(bs);
b = true;
break;
}
}
}
refactor.setUndoPoint();
}
use of com.ramussoft.pb.Row in project ramus by Vitaliy-Yakovchuk.
the class MovingArea method joinArrows.
public void joinArrows() {
List<Row> rows = mouseSelection.getSelectedArrowsAddedRows();
Row[] array = rows.toArray(new Row[rows.size()]);
startUserTransaction();
List<MovingLabel> pss = new ArrayList<MovingLabel>();
for (int i = 1; i < mouseSelection.getLabels().size(); i++) pss.add(mouseSelection.getLabels().get(i));
mouseSelection.getLabels().removeAll(pss);
for (MovingLabel ml : pss) ml.getSector().remove();
PaintSector sector = mouseSelection.getLabels().get(0).getSector();
Stream stream = sector.getStream();
if (stream == null) {
stream = (Stream) dataPlugin.createRow(dataPlugin.getBaseStream(), true);
stream.setRows(array);
sector.setStream(stream, ReplaceStreamType.SIMPLE);
}
sector.setRows(array);
sector.createTexts();
HashSet<PaintSector> hashSet = new HashSet();
sector.getConnectedSector(hashSet);
for (PaintSector sp : hashSet) PaintSector.save(sp, new DataLoader.MemoryData(), dataPlugin.getEngine());
getRefactor().setUndoPoint();
}
use of com.ramussoft.pb.Row in project ramus by Vitaliy-Yakovchuk.
the class MovingArea method removeLevel.
/**
* Метод, який видяляє рівень з функціонального блоку
*/
public void removeLevel() {
final Function f = ((MovingFunction) getActiveObject()).getFunction();
if (f.getChildCount() != 1) {
JOptionPane.showMessageDialog(this, ResourceLoader.getString("MovingArea.functionHaveNotOneChild"));
return;
}
Vector<Row> childs = dataPlugin.getChilds(f, true);
if (childs.size() != 1)
return;
final Function c = (Function) childs.get(0);
if (f.isLocked() || c.isLocked()) {
JOptionPane.showMessageDialog(this, ResourceLoader.getString("MovingArea.functionIsLocked"));
return;
}
if (!checkRemoveLevelFunction(c)) {
JOptionPane.showMessageDialog(this, ResourceLoader.getString("MovingArea.removingLevelSectorError"));
return;
}
if (JOptionPane.showConfirmDialog(this, ResourceLoader.getString("MovingArea.removingLevelWarning"), ResourceLoader.getString("warning"), JOptionPane.YES_NO_OPTION) != JOptionPane.YES_OPTION)
return;
f.lock();
c.lock();
startUserTransaction();
Vector<Sector> sectors = new Vector<Sector>(f.getSectors());
for (int i = 0; i < sectors.size(); i++) {
final Sector sector = sectors.get(i);
Crosspoint opp;
Crosspoint crosspoint;
if (c.equals(sector.getStart().getFunction())) {
opp = sector.getStart().getCrosspoint();
crosspoint = sector.getEnd().getCrosspoint();
} else {
opp = sector.getEnd().getCrosspoint();
crosspoint = sector.getStart().getCrosspoint();
}
Sector o = null;
final Sector[] os = opp.getOppozite(sector);
for (final Sector s : os) o = s;
class X {
int createState;
double createPos;
Stream stream;
byte[] visual;
int sBorderType;
int eBorderType;
}
X x = null;
if (o != null && (o.getStart().getCrosspoint() == null || o.getEnd().getCrosspoint() == null)) {
x = new X();
x.createState = o.getCreateState();
x.createPos = o.getCreatePos();
x.stream = o.getStream();
x.visual = o.getVisualAttributes();
x.sBorderType = o.getStart().getBorderType();
x.eBorderType = o.getEnd().getBorderType();
}
sector.remove();
if (x != null) {
o = dataPlugin.createSector();
o.setCreateState(x.createState, x.createPos);
((AbstractSector) o).setThisStream(x.stream);
o.setVisualAttributes(x.visual);
o.setFunction(c);
o.getStart().setBorderTypeA(x.sBorderType);
o.getEnd().setBorderTypeA(x.eBorderType);
o.getStart().commit();
o.getEnd().commit();
}
if (o != null) {
if (c.equals(sector.getStart().getFunction())) {
o.getEnd().setCrosspointA(crosspoint);
o.getEnd().commit();
} else {
o.getStart().setCrosspointA(crosspoint);
o.getEnd().commit();
}
}
}
sectors = new Vector<Sector>(c.getSectors());
for (int i = 0; i < sectors.size(); i++) {
final Sector sector = sectors.get(i);
sector.setFunction(f);
}
f.setSectorData(c.getSectorData());
c.setSectorData(new byte[0]);
childs = dataPlugin.getChilds(c, true);
for (int i = 0; i < childs.size(); i++) {
final Function c1 = (Function) childs.get(i);
c1.setParentRow(f);
}
c.unlock();
if (!dataPlugin.removeRow(c)) {
JOptionPane.showMessageDialog(this, ResourceLoader.getString("MovingArea.cantRemoveFunctionByRemovingLevel"));
}
f.unlock();
if (panel != null)
panel.getFrame().propertyChange(MChangeListener.RELOAD_FUNCTION_IN_TREE, dataPlugin.getBaseFunction());
commitUserTransaction();
}
use of com.ramussoft.pb.Row in project ramus by Vitaliy-Yakovchuk.
the class ProjectOptionsPanel method update.
private void update(Function function, boolean updateFonts, boolean updateZoom, double percent, GUIFramework framework) {
if (!updateFonts && !updateZoom)
return;
long id = -1l;
if (!dataPlugin.getBaseFunction().equals(function)) {
id = function.getElement().getId();
}
framework.propertyChanged(IDEF0TabView.CLOSE, id);
SectorRefactor sectorRefactor = new SectorRefactor(new MovingArea(dataPlugin, function));
sectorRefactor.updatePageSize(updateFonts, updateZoom, percent, function);
Vector<Row> v = dataPlugin.getChilds(function, true);
for (Row row : v) {
Function function2 = (Function) row;
update(function2, updateFonts, updateZoom, percent, framework);
}
}
Aggregations