public void relayout() { 
		if(mScreen == null || mDocument == null) { 
			return ;
		}
		
		restoreFlags(mDocument.getRootConstruct(), false);
		
		Dimension size = getSize(mDocument.getRootConstruct());
		float ratio = (float)size.width / (float)mScreen.width;
		while(ratio > mConstructRatioWidth) {
			if(!layout(mDocument.getRootConstruct())) { 
				break;
			}
			
			size = getSize(mDocument.getRootConstruct());
			ratio = (float) size.width / (float) mScreen.width;			
		}
	}