123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- /* ====================================================================
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements. See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to You under the Apache License, Version 2.0
- (the "License"); you may not use this file except in compliance with
- the License. You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- ==================================================================== */
-
- package org.apache.poi.hssf.model;
-
- import java.util.ArrayList;
- import java.util.List;
-
- import org.apache.poi.ddf.EscherDgRecord;
- import org.apache.poi.ddf.EscherDggRecord;
-
-
- /**
- * Provides utilities to manage drawing groups.
- */
- public class DrawingManager2 {
- private final EscherDggRecord dgg;
- private final List<EscherDgRecord> drawingGroups = new ArrayList<>();
-
-
- public DrawingManager2( EscherDggRecord dgg ) {
- this.dgg = dgg;
- }
-
- /**
- * Clears the cached list of drawing groups
- */
- public void clearDrawingGroups() {
- drawingGroups.clear();
- }
-
- /**
- * Creates a new drawing group
- *
- * @return a new drawing group
- */
- public EscherDgRecord createDgRecord() {
- EscherDgRecord dg = new EscherDgRecord();
- dg.setRecordId( EscherDgRecord.RECORD_ID );
- short dgId = findNewDrawingGroupId();
- dg.setOptions( (short) ( dgId << 4 ) );
- dg.setNumShapes( 0 );
- dg.setLastMSOSPID( -1 );
- drawingGroups.add(dg);
- dgg.addCluster( dgId, 0 );
- dgg.setDrawingsSaved( dgg.getDrawingsSaved() + 1 );
- return dg;
- }
-
- /**
- * Allocates new shape id for the drawing group
- *
- * @param dg the EscherDgRecord which receives the new shape
- *
- * @return a new shape id.
- */
- public int allocateShapeId(EscherDgRecord dg) {
- return dgg.allocateShapeId(dg, true);
- }
-
- /**
- * Finds the next available (1 based) drawing group id
- *
- * @return the next available drawing group id
- */
- public short findNewDrawingGroupId() {
- return dgg.findNewDrawingGroupId();
- }
-
- /**
- * Returns the drawing group container record
- *
- * @return the drawing group container record
- */
- public EscherDggRecord getDgg() {
- return dgg;
- }
-
- /**
- * Increment the drawing counter
- */
- public void incrementDrawingsSaved(){
- dgg.setDrawingsSaved(dgg.getDrawingsSaved()+1);
- }
- }
|