Search in sources :

Example 26 with PaintSector

use of com.ramussoft.pb.idef.elements.PaintSector in project ramus by Vitaliy-Yakovchuk.

the class MovingArea method setPanels.

/**
 * Медод ініцалізує масив з панелями для перетягування.
 */
public void setPanels() {
    movingFunctions.clear();
    final Vector fs = dataPlugin.getChilds(activeFunction, true);
    final Vector<MovingText> v = new Vector<MovingText>();
    for (int i = 0; i < fs.size(); i++) v.add(addIDEF0Object((Function) fs.get(i)));
    for (int i = 0; i < refactor.getTextCount(); i++) v.add(refactor.getText(i));
    for (int i = 0; i < refactor.getSectorsCount(); i++) {
        final PaintSector sector = refactor.getSector(i);
        if (sector.getText() != null)
            v.add(sector.getText());
    }
    panels = new MovingText[v.size()];
    for (int i = 0; i < panels.length; i++) panels[i] = v.get(i);
}
Also used : PaintSector(com.ramussoft.pb.idef.elements.PaintSector) Vector(java.util.Vector) 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)

Example 27 with PaintSector

use of com.ramussoft.pb.idef.elements.PaintSector in project ramus by Vitaliy-Yakovchuk.

the class MovingArea method removeActiveObject.

/**
 * Метод видаляє активний об’єкт.
 */
public boolean removeActiveObject() {
    if (activeObject instanceof IDEF0Object) {
        Function f = ((IDEF0Object) activeObject).getFunction();
        if (f.isRemoveable()) {
            startUserTransaction();
            if (mouseSelection != null && mouseSelection.contains((IDEF0Object) activeObject)) {
                for (Function function : mouseSelection.getFunctions()) {
                    f = function;
                    removeAddedSectors(f);
                    if (dataPlugin.removeRow(f)) {
                        panel.getFrame().propertyChange(MChangeListener.RELOAD_FUNCTION_IN_TREE, dataPlugin.getBaseFunction());
                        panel.getFrame().refreshActions(panel);
                    }
                }
                mouseSelection = null;
                setPanels();
                refactor.setUndoPoint();
                return true;
            }
            removeAddedSectors(f);
            if (dataPlugin.removeRow(f)) {
                setPanels();
                panel.getFrame().propertyChange(MChangeListener.RELOAD_FUNCTION_IN_TREE, dataPlugin.getBaseFunction());
                panel.getFrame().refreshActions(panel);
                refactor.setUndoPoint();
                return true;
            }
            refactor.setUndoPoint();
        }
        return false;
    } else if (activeObject instanceof PaintSector.Pin) {
        startUserTransaction();
        PaintSector sector = ((PaintSector.Pin) activeObject).getSector();
        sector.remove();
        refactor.setUndoPointSaveAll();
        return true;
    } else if (activeObject instanceof MovingText) {
        startUserTransaction();
        refactor.removeText((MovingText) activeObject);
        refactor.setUndoPoint();
        return true;
    } else {
        if (mouseSelection != null && mouseSelection.getFunctions().size() > 0 && mouseSelection.isRemoveable()) {
            startUserTransaction();
            for (Function function : mouseSelection.getFunctions()) {
                removeAddedSectors(function);
                if (dataPlugin.removeRow(function)) {
                    panel.getFrame().propertyChange(MChangeListener.RELOAD_FUNCTION_IN_TREE, dataPlugin.getBaseFunction());
                    panel.getFrame().refreshActions(panel);
                }
            }
            mouseSelection = null;
            setPanels();
            refactor.setUndoPoint();
            return true;
        }
    }
    return false;
}
Also used : Pin(com.ramussoft.pb.idef.elements.PaintSector.Pin) 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) PaintSector(com.ramussoft.pb.idef.elements.PaintSector)

Example 28 with PaintSector

use of com.ramussoft.pb.idef.elements.PaintSector in project ramus by Vitaliy-Yakovchuk.

the class HTMLHelper method getDiagram.

/*
     *
	 * private static final int IMAGE_WIDTH = 850; private static final int
	 * IMAGE_HEIGHT = 738;
	 */
public String getDiagram(final String sId, final String functionController, final String clasificatorController) {
    if (sId == null)
        return null;
    final Row r = dataPlugin.findRowByGlobalId(GlobalId.convert(sId));
    if (r instanceof Function) {
        final Function function = (Function) r;
        final int imageWidth = IMAGE_WIDTH;
        final int imageHeight = IMAGE_HEIGHT;
        final DiagramHolder htmlStream = new DiagramHolder();
        htmlStream.println("<img border=0 width=" + imageWidth + " height=" + imageHeight + " src=\"" + functionController + "idef0/" + function.getGlobalId().toString() + "\" useMap=#M" + function.getGlobalId().toString() + ">");
        htmlStream.println("<map name=M" + function.getGlobalId().toString() + ">");
        final Vector childs = dataPlugin.getChilds(function, true);
        final MovingArea area = PIDEF0painter.createMovingArea(new Dimension(imageWidth, imageHeight), dataPlugin);
        final SectorRefactor refactor = area.getRefactor();
        for (int i = 0; i < childs.size(); i++) {
            final Function fun = (Function) childs.get(i);
            String where;
            if (fun.isLeaf())
                where = clasificatorController;
            else
                where = functionController + "index/";
            htmlStream.print("<area shape=RECT coords=" + getAreaCoords(fun.getBounds(), area) + " href=\"" + where + fun.getGlobalId().toString() + "\"");
            htmlStream.println(">");
        }
        refactor.loadFromFunction(function, false);
        final int sc = refactor.getSectorsCount();
        for (int i = 0; i < sc; i++) {
            final PaintSector sector = refactor.getSector(i);
            final Stream stream = sector.getStream();
            final MovingLabel text = refactor.getSector(i).getText();
            if (text != null && stream != null) {
                htmlStream.print("<area shape=RECT coords=" + getAreaCoords(text.getBounds(), area) + " href=\"" + clasificatorController + stream.getGlobalId().toString() + "\"");
                htmlStream.println(">");
            }
            final int l = sector.getPinCount();
            for (int j = 0; j < l; j++) if (stream != null) {
                final Pin pin = sector.getPin(j);
                htmlStream.print("<area shape=RECT coords=" + getPinCoords(pin, area) + " href=\"" + clasificatorController + stream.getGlobalId().toString() + "\"");
                htmlStream.println(">");
            }
        }
        htmlStream.println("<map>");
        return htmlStream.toString();
    }
    return null;
}
Also used : MovingArea(com.ramussoft.pb.idef.visual.MovingArea) SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) Dimension(java.awt.Dimension) Function(com.ramussoft.pb.Function) MovingLabel(com.ramussoft.pb.idef.visual.MovingLabel) Pin(com.ramussoft.pb.idef.elements.PaintSector.Pin) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) ByteArrayOutputStream(java.io.ByteArrayOutputStream) Stream(com.ramussoft.pb.Stream) Row(com.ramussoft.pb.Row) Vector(java.util.Vector)

Example 29 with PaintSector

use of com.ramussoft.pb.idef.elements.PaintSector in project ramus by Vitaliy-Yakovchuk.

the class UserTemplate method createChilds.

public void createChilds(final Function function, final DataPlugin dataPlugin) {
    Hashtable<Long, Long> trans = new Hashtable<Long, Long>();
    final MovingArea ma = new MovingArea(dataPlugin);
    ma.setDataPlugin(dataPlugin);
    ma.setActiveFunction(function);
    final SectorRefactor refactor = ma.getRefactor();
    try {
        final ByteArrayInputStream streamr = new ByteArrayInputStream(data);
        final ObjectInputStream stream = new ObjectInputStream(streamr);
        final MemoryData data = new MemoryData();
        int l = DataLoader.readInteger(stream);
        for (int i = 0; i < l; i++) {
            final Function c = (Function) dataPlugin.createRow(function, true);
            c.setName(functionNames.get(i));
            if (i < functionTypes.size())
                c.setType(functionTypes.get(i));
            if (i < functionLinks.size()) {
                Row r = dataPlugin.findRowByGlobalId(functionLinks.get(i));
                if (r != null) {
                    if (r instanceof Stream) {
                        Stream st = (Stream) r;
                        Stream s = (Stream) dataPlugin.createRow(dataPlugin.getBaseStream(), true);
                        s.setAttachedStatus(st.getAttachedStatus());
                        s.setEmptyName(st.isEmptyName());
                        s.setRows(st.getAdded());
                        c.setLink(s.getElement().getId());
                    }
                }
            }
            final long id = DataLoader.readLong(stream);
            trans.put(id, c.getElement().getId());
            c.setBounds(DataLoader.readFRectangle(stream));
            c.setFont(DataLoader.readFont(stream, data));
            c.setBackground(DataLoader.readColor(stream, data));
            c.setForeground(DataLoader.readColor(stream, data));
        }
        // Read version of
        final int ver = DataLoader.readInteger(stream);
        // Paint
        // Sector format
        l = DataLoader.readInteger(stream);
        HashMap<Sector, List<SectorPointPersistent>> pointsCache = new HashMap<Sector, List<SectorPointPersistent>>();
        HashMap<Long, Long> pointIds = new HashMap<Long, Long>();
        for (int i = 0; i < l; i++) {
            final Sector s = dataPlugin.createSector();
            s.setFunction(function);
            final long id = DataLoader.readLong(stream);
            trans.put(id, ((NSector) s).getElementId());
            final byte[] va = DataLoader.readBytes(stream);
            s.setVisualAttributes(va);
            List<SectorPointPersistent> points = (List) stream.readObject();
            pointsCache.put(s, points);
            normalize(points, dataPlugin.getEngine(), pointIds);
            s.setSectorPointPersistents(points);
            s.setSectorProperties((SectorPropertiesPersistent) stream.readObject());
            // final byte bs[] = DataLoader.readBytes(stream);
            // final ByteArrayInputStream ba = new ByteArrayInputStream(bs);
            final PaintSector ps = PaintSector.loadFromSector(ver, ma, data, dataPlugin, s);
            refactor.addSector(ps);
            Crosspoint c;
            if (DataLoader.readBoolean(stream)) {
                c = getCrosspoint(dataPlugin, trans, stream);
                s.getStart().setCrosspointA(c);
            }
            loadBorder(s.getStart(), stream, trans, dataPlugin, refactor, ps, true);
            s.getStart().commit();
            if (DataLoader.readBoolean(stream)) {
                c = getCrosspoint(dataPlugin, trans, stream);
                s.getEnd().setCrosspointA(c);
            }
            loadBorder(s.getEnd(), stream, trans, dataPlugin, refactor, ps, false);
            s.getEnd().commit();
            if (DataLoader.readBoolean(stream)) {
                int count = DataLoader.readInteger(stream);
                List<Row> rows = new ArrayList<Row>();
                for (int j = 0; j < count; j++) {
                    Row row = loadRow(stream, dataPlugin);
                    if (row != null)
                        rows.add(row);
                }
                if (rows.size() > 0) {
                    Stream stream2 = (Stream) dataPlugin.createRow(dataPlugin.getBaseStream(), true);
                    stream2.setRows(rows.toArray(new Row[rows.size()]));
                    ((NSector) s).setThisStream(stream2);
                }
            }
        }
        setPoints(pointsCache);
        refactor.saveToFunction();
    } catch (final Exception e) {
        e.printStackTrace();
    }
}
Also used : HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) Function(com.ramussoft.pb.Function) NFunction(com.ramussoft.pb.data.negine.NFunction) NSector(com.ramussoft.pb.data.negine.NSector) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) ByteArrayOutputStream(java.io.ByteArrayOutputStream) ObjectInputStream(java.io.ObjectInputStream) ByteArrayInputStream(java.io.ByteArrayInputStream) ObjectOutputStream(java.io.ObjectOutputStream) OutputStream(java.io.OutputStream) Stream(com.ramussoft.pb.Stream) InputStream(java.io.InputStream) ArrayList(java.util.ArrayList) List(java.util.List) MovingArea(com.ramussoft.pb.idef.visual.MovingArea) SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) Hashtable(java.util.Hashtable) Sector(com.ramussoft.pb.Sector) NSector(com.ramussoft.pb.data.negine.NSector) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) NCrosspoint(com.ramussoft.pb.data.negine.NCrosspoint) Crosspoint(com.ramussoft.pb.Crosspoint) NCrosspoint(com.ramussoft.pb.data.negine.NCrosspoint) Crosspoint(com.ramussoft.pb.Crosspoint) IOException(java.io.IOException) ByteArrayInputStream(java.io.ByteArrayInputStream) MemoryData(com.dsoft.utils.DataLoader.MemoryData) SectorPointPersistent(com.ramussoft.idef0.attribute.SectorPointPersistent) Row(com.ramussoft.pb.Row) ObjectInputStream(java.io.ObjectInputStream)

Example 30 with PaintSector

use of com.ramussoft.pb.idef.elements.PaintSector in project ramus by Vitaliy-Yakovchuk.

the class IDEF0Object method centerAddedSetors.

/**
 * Метод вирівнює розташування всіх під’єднаних до функціонального блока
 * секторів.
 */
@SuppressWarnings("unchecked")
public void centerAddedSetors() {
    final Vector<Point>[] vectors = new Vector[4];
    vectors[LEFT] = new Vector<Point>();
    vectors[RIGHT] = new Vector<Point>();
    vectors[TOP] = new Vector<Point>();
    vectors[BOTTOM] = new Vector<Point>();
    final SectorRefactor refactor = movingArea.getRefactor();
    for (int i = 0; i < refactor.getSectorsCount(); i++) {
        final PaintSector sector = refactor.getSector(i);
        if (function.equals(sector.getSector().getStart().getFunction()))
            vectors[sector.getSector().getStart().getFunctionType()].add(sector.getStartPoint());
        if (function.equals(sector.getSector().getEnd().getFunction()))
            vectors[sector.getSector().getEnd().getFunctionType()].add(sector.getEndPoint());
    }
    for (int i = 0; i < 4; i++) centerPoints(vectors[i], i == LEFT || i == RIGHT ? Ordinate.TYPE_Y : Ordinate.TYPE_X, i);
    for (int i = 0; i < refactor.getSectorsCount(); i++) {
        final PaintSector sector = refactor.getSector(i);
        if (function.equals(sector.getSector().getStart().getFunction()))
            sector.tryRemovePin(getMovingArea());
        else if (function.equals(sector.getSector().getEnd().getFunction()))
            sector.tryRemovePin(getMovingArea());
    }
}
Also used : SectorRefactor(com.ramussoft.pb.idef.elements.SectorRefactor) PaintSector(com.ramussoft.pb.idef.elements.PaintSector) Point(com.ramussoft.pb.idef.elements.Point) FloatPoint(com.dsoft.pb.types.FloatPoint) Vector(java.util.Vector) Point(com.ramussoft.pb.idef.elements.Point) FloatPoint(com.dsoft.pb.types.FloatPoint)

Aggregations

PaintSector (com.ramussoft.pb.idef.elements.PaintSector)32 SectorRefactor (com.ramussoft.pb.idef.elements.SectorRefactor)15 FloatPoint (com.dsoft.pb.types.FloatPoint)14 Crosspoint (com.ramussoft.pb.Crosspoint)12 Function (com.ramussoft.pb.Function)12 Point (com.ramussoft.pb.idef.elements.Point)12 Row (com.ramussoft.pb.Row)10 MemoryData (com.dsoft.utils.DataLoader.MemoryData)9 MovingArea (com.ramussoft.pb.idef.visual.MovingArea)9 ArrayList (java.util.ArrayList)8 Stream (com.ramussoft.pb.Stream)7 NFunction (com.ramussoft.pb.data.negine.NFunction)7 Pin (com.ramussoft.pb.idef.elements.PaintSector.Pin)6 PerspectivePoint (com.ramussoft.pb.idef.elements.SectorRefactor.PerspectivePoint)5 Sector (com.ramussoft.pb.Sector)4 MovingLabel (com.ramussoft.pb.idef.visual.MovingLabel)4 IOException (java.io.IOException)4 Vector (java.util.Vector)4 FRectangle (com.dsoft.pb.types.FRectangle)3 NSector (com.ramussoft.pb.data.negine.NSector)3