예제 #1
0
        /**
         * Initializes the member variables from the Escher stream data
         */
        private void initialize()
        {
            readSpContainer = drawingData.getSpContainer(drawingNumber);
            Assert.verify(readSpContainer != null);

            EscherRecord[] children = readSpContainer.getChildren();

            Sp sp = (Sp)readSpContainer.getChildren()[0];

            objectId = objRecord.getObjectId();
            shapeId  = sp.getShapeId();
            type     = ShapeType.getType(sp.getShapeType());

            if (type == ShapeType.UNKNOWN)
            {
                //logger.warn("Unknown shape type");
            }

            ClientAnchor clientAnchor = null;

            for (int i = 0; i < children.Length && clientAnchor == null; i++)
            {
                if (children[i].getType() == EscherRecordType.CLIENT_ANCHOR)
                {
                    clientAnchor = (ClientAnchor)children[i];
                }
            }

            if (clientAnchor == null)
            {
                //logger.warn("client anchor not found");
            }
            else
            {
                column = (int)clientAnchor.getX1() - 1;
                row    = (int)clientAnchor.getY1() + 1;
                width  = clientAnchor.getX2() - clientAnchor.getX1();
                height = clientAnchor.getY2() - clientAnchor.getY1();
            }

            initialized = true;
        }
예제 #2
0
        /**
         * Creates the main Sp container for the drawing
         *
         * @return the SP container
         */
        public EscherContainer getSpContainer()
        {
            if (!initialized)
            {
                initialize();
            }

            if (origin == Origin.READ)
            {
                return(getReadSpContainer());
            }

            if (spContainer == null)
            {
                spContainer = new SpContainer();
                Sp sp = new Sp(type, shapeId, 2560);
                spContainer.add(sp);
                Opt opt = new Opt();
                opt.addProperty(344, false, false, 0);              // ?
                opt.addProperty(385, false, false, 134217808);      // fill colour
                opt.addProperty(387, false, false, 134217808);      // background colour
                opt.addProperty(959, false, false, 131074);         // hide
                spContainer.add(opt);

                ClientAnchor clientAnchor = new ClientAnchor(column + 1.3,
                                                             System.Math.Max(0, row - 0.6),
                                                             column + 1.3 + width,
                                                             row + height,
                                                             0x1);

                spContainer.add(clientAnchor);

                ClientData clientData = new ClientData();
                spContainer.add(clientData);

                ClientTextBox clientTextBox = new ClientTextBox();
                spContainer.add(clientTextBox);
            }

            return(spContainer);
        }
예제 #3
0
        /**
         * Creates the main Sp container for the drawing
         *
         * @return the SP container
         */
        public virtual EscherContainer getSpContainer()
        {
            if (!initialized)
            {
                initialize();
            }

            if (origin == Origin.READ)
            {
                return(getReadSpContainer());
            }

            SpContainer spContainer = new SpContainer();
            Sp          sp          = new Sp(type, shapeId, 2560);

            spContainer.add(sp);
            Opt opt = new Opt();

            opt.addProperty(260, true, false, blipId);

            if (type == ShapeType.PICTURE_FRAME)
            {
                string filePath = imageFile != null ? imageFile.FullName : string.Empty;
                opt.addProperty(261, true, true, filePath.Length * 2, filePath);
                opt.addProperty(447, false, false, 65536);
                opt.addProperty(959, false, false, 524288);
                spContainer.add(opt);
            }

            ClientAnchor clientAnchor = new ClientAnchor
                                            (x, y, x + width, y + height,
                                            imageAnchorProperties.getValue());

            spContainer.add(clientAnchor);
            ClientData clientData = new ClientData();

            spContainer.add(clientData);

            return(spContainer);
        }
예제 #4
0
파일: CheckBox.cs 프로젝트: morninn/PetSof
        /**
         * Creates the main Sp container for the drawing
         *
         * @return the SP container
         */
        public virtual EscherContainer getSpContainer()
        {
            if (!initialized)
            {
                initialize();
            }

            if (origin == Origin.READ)
            {
                return(getReadSpContainer());
            }

            SpContainer spc = new SpContainer();
            Sp          sp  = new Sp(type, shapeId, 2560);

            spc.add(sp);
            Opt opt = new Opt();

            opt.addProperty(127, false, false, 17039620);
            opt.addProperty(191, false, false, 524296);
            opt.addProperty(511, false, false, 524288);
            opt.addProperty(959, false, false, 131072);
            //    opt.addProperty(260, true, false, blipId);
            //    opt.addProperty(261, false, false, 36);
            spc.add(opt);

            ClientAnchor clientAnchor = new ClientAnchor(column,
                                                         row,
                                                         column + 1,
                                                         row + 1,
                                                         0x1);

            spc.add(clientAnchor);
            ClientData clientData = new ClientData();

            spc.add(clientData);

            return(spc);
        }
예제 #5
0
        /**
         * Creates the main Sp container for the drawing
         *
         * @return the SP container
         */
        public EscherContainer getSpContainer()
        {
            if (!initialized)
                {
                initialize();
                }

            if (origin == Origin.READ)
                {
                return getReadSpContainer();
                }

            SpContainer spc = new SpContainer();
            Sp sp = new Sp(type,shapeId,2560);
            spc.add(sp);
            Opt opt = new Opt();
            opt.addProperty(127,false,false,17039620);
            opt.addProperty(191,false,false,524296);
            opt.addProperty(511,false,false,524288);
            opt.addProperty(959,false,false,131072);
            //    opt.addProperty(260, true, false, blipId);
            //    opt.addProperty(261, false, false, 36);
            spc.add(opt);

            ClientAnchor clientAnchor = new ClientAnchor(column,
                                                         row,
                                                         column + 1,
                                                         row + 1,
                                                         0x1);
            spc.add(clientAnchor);
            ClientData clientData = new ClientData();
            spc.add(clientData);

            return spc;
        }
예제 #6
0
        /**
         * Creates the main Sp container for the drawing
         *
         * @return the SP container
         */
        public EscherContainer getSpContainer()
        {
            if (!initialized)
                {
                initialize();
                }

            if (origin == Origin.READ)
                {
                return getReadSpContainer();
                }

            if (spContainer == null)
                {
                spContainer = new SpContainer();
                Sp sp = new Sp(type,shapeId,2560);
                spContainer.add(sp);
                Opt opt = new Opt();
                opt.addProperty(344,false,false,0); // ?
                opt.addProperty(385,false,false,134217808); // fill colour
                opt.addProperty(387,false,false,134217808); // background colour
                opt.addProperty(959,false,false,131074); // hide
                spContainer.add(opt);

                ClientAnchor clientAnchor = new ClientAnchor(column + 1.3,
                                                             System.Math.Max(0,row - 0.6),
                                                             column + 1.3 + width,
                                                             row + height,
                                                             0x1);

                spContainer.add(clientAnchor);

                ClientData clientData = new ClientData();
                spContainer.add(clientData);

                ClientTextBox clientTextBox = new ClientTextBox();
                spContainer.add(clientTextBox);
                }

            return spContainer;
        }
예제 #7
0
        /**
         * Initializes the member variables from the Escher stream data
         */
        private void initialize()
        {
            readSpContainer = drawingData.getSpContainer(drawingNumber);
            Assert.verify(readSpContainer != null);

            EscherRecord[] children = readSpContainer.getChildren();

            Sp sp = (Sp)readSpContainer.getChildren()[0];

            shapeId  = sp.getShapeId();
            objectId = objRecord.getObjectId();
            type     = ShapeType.getType(sp.getShapeType());

            if (type == ShapeType.UNKNOWN)
            {
                //logger.warn("Unknown shape type");
            }

            Opt opt = (Opt)readSpContainer.getChildren()[1];

            if (opt.getProperty(260) != null)
            {
                blipId = opt.getProperty(260).value;
            }

            if (opt.getProperty(261) != null)
            {
                imageFile = new System.IO.FileInfo(opt.getProperty(261).StringValue);
            }
            else
            {
                if (type == ShapeType.PICTURE_FRAME)
                {
                    //logger.warn("no filename property for drawing");
                    imageFile = new System.IO.FileInfo(blipId.ToString().Trim());
                }
            }

            ClientAnchor clientAnchor = null;

            for (int i = 0; i < children.Length && clientAnchor == null; i++)
            {
                if (children[i].getType() == EscherRecordType.CLIENT_ANCHOR)
                {
                    clientAnchor = (ClientAnchor)children[i];
                }
            }

            if (clientAnchor == null)
            {
                //logger.warn("client anchor not found");
            }
            else
            {
                x      = clientAnchor.getX1();
                y      = clientAnchor.getY1();
                width  = clientAnchor.getX2() - x;
                height = clientAnchor.getY2() - y;
                imageAnchorProperties = ImageAnchorProperties.getImageAnchorProperties(clientAnchor.getProperties());
            }

            if (blipId == 0)
            {
                //logger.warn("linked drawings are not supported");
            }

            initialized = true;
        }
        /**
         * Initialization
         */
        private void initialize()
        {
            int curpos = getPos() + HEADER_LENGTH;
            int endpos = System.Math.Min(getPos() + getLength(),getStreamLength());

            EscherRecord newRecord = null;

            while (curpos < endpos)
                {
                EscherRecordData erd = new EscherRecordData(getEscherStream(),curpos);

                EscherRecordType type = erd.getType();
                if (type == EscherRecordType.DGG)
                    newRecord = new Dgg(erd);
                else if (type == EscherRecordType.DG)
                    newRecord = new Dg(erd);
                else if (type == EscherRecordType.BSTORE_CONTAINER)
                    newRecord = new BStoreContainer(erd);
                else if (type == EscherRecordType.SPGR_CONTAINER)
                    newRecord = new SpgrContainer(erd);
                else if (type == EscherRecordType.SP_CONTAINER)
                    newRecord = new SpContainer(erd);
                else if (type == EscherRecordType.SPGR)
                    newRecord = new Spgr(erd);
                else if (type == EscherRecordType.SP)
                    newRecord = new Sp(erd);
                else if (type == EscherRecordType.CLIENT_ANCHOR)
                    newRecord = new ClientAnchor(erd);
                else if (type == EscherRecordType.CLIENT_DATA)
                    newRecord = new ClientData(erd);
                else if (type == EscherRecordType.BSE)
                    newRecord = new BlipStoreEntry(erd);
                else if (type == EscherRecordType.OPT)
                    newRecord = new Opt(erd);
                else if (type == EscherRecordType.SPLIT_MENU_COLORS)
                    newRecord = new SplitMenuColors(erd);
                else if (type == EscherRecordType.CLIENT_TEXT_BOX)
                    newRecord = new ClientTextBox(erd);
                else
                    newRecord = new EscherAtom(erd);

                children.Add(newRecord);
                curpos += newRecord.getLength();
                }

            initialized = true;
        }
예제 #9
0
        /**
         * Initialization
         */
        private void initialize()
        {
            int curpos = getPos() + HEADER_LENGTH;
            int endpos = System.Math.Min(getPos() + getLength(), getStreamLength());

            EscherRecord newRecord = null;

            while (curpos < endpos)
            {
                EscherRecordData erd = new EscherRecordData(getEscherStream(), curpos);

                EscherRecordType type = erd.getType();
                if (type == EscherRecordType.DGG)
                {
                    newRecord = new Dgg(erd);
                }
                else if (type == EscherRecordType.DG)
                {
                    newRecord = new Dg(erd);
                }
                else if (type == EscherRecordType.BSTORE_CONTAINER)
                {
                    newRecord = new BStoreContainer(erd);
                }
                else if (type == EscherRecordType.SPGR_CONTAINER)
                {
                    newRecord = new SpgrContainer(erd);
                }
                else if (type == EscherRecordType.SP_CONTAINER)
                {
                    newRecord = new SpContainer(erd);
                }
                else if (type == EscherRecordType.SPGR)
                {
                    newRecord = new Spgr(erd);
                }
                else if (type == EscherRecordType.SP)
                {
                    newRecord = new Sp(erd);
                }
                else if (type == EscherRecordType.CLIENT_ANCHOR)
                {
                    newRecord = new ClientAnchor(erd);
                }
                else if (type == EscherRecordType.CLIENT_DATA)
                {
                    newRecord = new ClientData(erd);
                }
                else if (type == EscherRecordType.BSE)
                {
                    newRecord = new BlipStoreEntry(erd);
                }
                else if (type == EscherRecordType.OPT)
                {
                    newRecord = new Opt(erd);
                }
                else if (type == EscherRecordType.SPLIT_MENU_COLORS)
                {
                    newRecord = new SplitMenuColors(erd);
                }
                else if (type == EscherRecordType.CLIENT_TEXT_BOX)
                {
                    newRecord = new ClientTextBox(erd);
                }
                else
                {
                    newRecord = new EscherAtom(erd);
                }

                children.Add(newRecord);
                curpos += newRecord.getLength();
            }

            initialized = true;
        }
예제 #10
0
        /**
         * Creates the main Sp container for the drawing
         *
         * @return the SP container
         */
        public virtual EscherContainer getSpContainer()
        {
            if (!initialized)
                initialize();

            if (origin == Origin.READ)
                return getReadSpContainer();

            SpContainer spContainer = new SpContainer();
            Sp sp = new Sp(type,shapeId,2560);
            spContainer.add(sp);
            Opt opt = new Opt();
            opt.addProperty(260,true,false,blipId);

            if (type == ShapeType.PICTURE_FRAME)
                {
                string filePath = imageFile != null ? imageFile.FullName : string.Empty;
                opt.addProperty(261,true,true,filePath.Length * 2,filePath);
                opt.addProperty(447,false,false,65536);
                opt.addProperty(959,false,false,524288);
                spContainer.add(opt);
                }

            ClientAnchor clientAnchor = new ClientAnchor
              (x,y,x + width,y + height,
               imageAnchorProperties.getValue());
            spContainer.add(clientAnchor);
            ClientData clientData = new ClientData();
            spContainer.add(clientData);

            return spContainer;
        }