Revision 10111 trunk/libraries/libDwg/src/com/iver/cit/jdwglib/dwg/DwgObject.java

View differences:

DwgObject.java
35 35
package com.iver.cit.jdwglib.dwg;
36 36

  
37 37
import java.util.ArrayList;
38
import java.util.Iterator;
39
import java.util.LinkedList;
38 40
import java.util.List;
39 41

  
42
import com.iver.cit.jdwglib.dwg.objects.DwgLayer;
43

  
40 44
/**
41 45
 * The DwgObject class represents a DWG object
42 46
 * 
......
84 88
	protected DwgHandleReference xDicObjHandle = null;
85 89

  
86 90
	protected boolean graphicsFlag;
91
	
92
	private DwgFile dwgFile = null;
87 93

  
88 94
	/**
89 95
	 * Index of the dwg object in the object's map section
......
459 465
		return this.lineTypeHandle != null;
460 466
	}
461 467

  
468
	public DwgObject getSuperEntity() {
469
		if(this.hasSubEntityHandle()){
470
			int handleCode = this.subEntityHandle.getCode();
471
			int offset = this.subEntityHandle.getOffset();
472
			int handle = -1;
473
			
474
			DwgObject object;
462 475

  
476
			switch(handleCode){
477
//			case 0x4:
478
//			case 0x8:
479
//				if (entity.hasNextHandle()){
480
//					int nextHandleCode = entity.getNextHandle().getCode();
481
//					if (nextHandleCode == 0x5) {
482
//						layerHandle = entity.getNextHandle().getOffset();
483
//					} else {
484
//						//TODO No se han previsto nextHandleCode != 0x5
485
//						System.out.println ("DwgFile.getDwgLayer: handleCode "+handleCode+
486
//								" con nextHandleCode "+ nextHandleCode +" no implementado.");
487
//					}
488
//				}
489
//				break;
490
			case 0x5:
491
				handle = offset;
492
				break;
493
			case 0xC:
494
				handle = this.getHandle().getOffset() - offset + 1;
495
				break;
496
			default:
497
				System.out.println ("DwgObejct.getDwgSuperEntity: handleCode "+handleCode+" no implementado. offset = "+offset);
498
			}
499
			if(handle != -1){
500
				LinkedList objects = this.dwgFile.getDwgObjects();
501
				Iterator objsIterator = objects.iterator();
502
				while(objsIterator.hasNext()){
503
					object = (DwgObject) objsIterator.next();
504
					int objHdl = object.getHandle().getOffset();
505
					if (objHdl == handle){
506
						return object;
507
					}
508
				}
509
			}
510
			System.out.println(" NO SE HA ENCONTRADO UN OBJETO CON HANDLE " + handle + ". handleCode = " + handleCode + " dwgObject.index = "+this.index +" dwgObject.type = " + this.type + " dwgObjectClassName = "+ this.getClass().getName());
511
		}
512
		return null;
513
	}
514
	
515
	public void setDwgFile(DwgFile dwgFile){
516
		this.dwgFile = dwgFile;
517
	}
518

  
519
	public DwgFile getDwgFile(){
520
		return this.dwgFile;
521
	}
463 522
}

Also available in: Unified diff