Search in sources :

Example 46 with Row

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();
}
Also used : DFDSRole(com.ramussoft.pb.dfds.visual.DFDSRole) DFDSFunction(com.ramussoft.pb.dfds.visual.DFDSFunction) Function(com.ramussoft.pb.Function) DFDFunction(com.ramussoft.pb.dfd.visual.DFDFunction) NFunction(com.ramussoft.pb.data.negine.NFunction) FRectangle(com.dsoft.pb.types.FRectangle) Color(java.awt.Color) Stream(com.ramussoft.pb.Stream) Row(com.ramussoft.pb.Row) Font(java.awt.Font)

Example 47 with Row

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();
}
Also used : Pin(com.ramussoft.pb.idef.elements.PaintSector.Pin) Pin(com.ramussoft.pb.idef.elements.PaintSector.Pin) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) Sector(com.ramussoft.pb.Sector) NSector(com.ramussoft.pb.data.negine.NSector) AbstractSector(com.ramussoft.pb.data.AbstractSector) Stream(com.ramussoft.pb.Stream) Row(com.ramussoft.pb.Row)

Example 48 with Row

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();
}
Also used : PaintSector(com.ramussoft.pb.idef.elements.PaintSector) MemoryData(com.dsoft.utils.DataLoader.MemoryData) ArrayList(java.util.ArrayList) Stream(com.ramussoft.pb.Stream) Row(com.ramussoft.pb.Row) PerspectivePoint(com.ramussoft.pb.idef.elements.SectorRefactor.PerspectivePoint) FloatPoint(com.dsoft.pb.types.FloatPoint) Crosspoint(com.ramussoft.pb.Crosspoint) Point(com.ramussoft.pb.idef.elements.Point) HashSet(java.util.HashSet)

Example 49 with Row

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();
}
Also used : PaintSector(com.ramussoft.pb.idef.elements.PaintSector) Sector(com.ramussoft.pb.Sector) NSector(com.ramussoft.pb.data.negine.NSector) AbstractSector(com.ramussoft.pb.data.AbstractSector) Crosspoint(com.ramussoft.pb.Crosspoint) PerspectivePoint(com.ramussoft.pb.idef.elements.SectorRefactor.PerspectivePoint) FloatPoint(com.dsoft.pb.types.FloatPoint) Crosspoint(com.ramussoft.pb.Crosspoint) Point(com.ramussoft.pb.idef.elements.Point) DFDSFunction(com.ramussoft.pb.dfds.visual.DFDSFunction) Function(com.ramussoft.pb.Function) DFDFunction(com.ramussoft.pb.dfd.visual.DFDFunction) NFunction(com.ramussoft.pb.data.negine.NFunction) AbstractSector(com.ramussoft.pb.data.AbstractSector) Stream(com.ramussoft.pb.Stream) Row(com.ramussoft.pb.Row) Vector(java.util.Vector)

Example 50 with Row

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);
    }
}
Also used : MovingArea(com.ramussoft.pb.idef.visual.MovingArea) SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) Function(com.ramussoft.pb.Function) Row(com.ramussoft.pb.Row)

Aggregations

Row (com.ramussoft.pb.Row)93 Function (com.ramussoft.pb.Function)35 Stream (com.ramussoft.pb.Stream)30 Vector (java.util.Vector)28 NFunction (com.ramussoft.pb.data.negine.NFunction)19 Sector (com.ramussoft.pb.Sector)15 NRow (com.ramussoft.pb.data.negine.NRow)14 Qualifier (com.ramussoft.common.Qualifier)13 Crosspoint (com.ramussoft.pb.Crosspoint)13 NSector (com.ramussoft.pb.data.negine.NSector)13 PaintSector (com.ramussoft.pb.idef.elements.PaintSector)12 ByteArrayOutputStream (java.io.ByteArrayOutputStream)11 ArrayList (java.util.ArrayList)11 SectorRefactor (com.ramussoft.pb.idef.elements.SectorRefactor)10 Attribute (com.ramussoft.common.Attribute)9 MovingFunction (com.ramussoft.pb.idef.visual.MovingFunction)9 IOException (java.io.IOException)9 FloatPoint (com.dsoft.pb.types.FloatPoint)8 Point (com.ramussoft.pb.idef.elements.Point)8 Element (com.ramussoft.common.Element)7