001 package org.apache.myfaces.tobago.layout; 002 003 /* 004 * Licensed to the Apache Software Foundation (ASF) under one or more 005 * contributor license agreements. See the NOTICE file distributed with 006 * this work for additional information regarding copyright ownership. 007 * The ASF licenses this file to You under the Apache License, Version 2.0 008 * (the "License"); you may not use this file except in compliance with 009 * the License. You may obtain a copy of the License at 010 * 011 * http://www.apache.org/licenses/LICENSE-2.0 012 * 013 * Unless required by applicable law or agreed to in writing, software 014 * distributed under the License is distributed on an "AS IS" BASIS, 015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 016 * See the License for the specific language governing permissions and 017 * limitations under the License. 018 */ 019 020 /** 021 * User: lofwyr 022 * Date: 28.05.2008 15:10:29 023 */ 024 025 public class Box { 026 027 private Position position; 028 private Dimension dimension; 029 030 public Box(Position position, Dimension dimension) { 031 this.position = position; 032 this.dimension = dimension; 033 } 034 035 public Box(String string) { 036 int comma = string.indexOf(','); 037 if (comma >= 0) { // found first comma 038 comma = string.indexOf(',', comma + 1); 039 if (comma >= 0) { // found second comma 040 position = new Position(string.substring(0, comma)); 041 dimension = new Dimension(string.substring(comma + 1)); 042 return; 043 } 044 } 045 throw new IllegalArgumentException("Can't parse to a box: '" + string + "'"); 046 } 047 048 /** 049 * Convenience method to get left + width. 050 */ 051 public Measure getRight() { 052 return position.getLeft().add(dimension.getWidth()); 053 } 054 055 /** 056 * Convenience method to get top + height. 057 */ 058 public Measure getBottom() { 059 return position.getTop().add(dimension.getHeight()); 060 } 061 062 public Measure getLeft() { 063 return position.getLeft(); 064 } 065 066 public void setLeft(Measure left) { 067 position.setLeft(left); 068 } 069 070 public Measure getTop() { 071 return position.getTop(); 072 } 073 074 public void setTop(Measure top) { 075 position.setTop(top); 076 } 077 078 public Measure getWidth() { 079 return dimension.getWidth(); 080 } 081 082 public void setWidth(Measure width) { 083 dimension.setWidth(width); 084 } 085 086 public Measure getHeight() { 087 return dimension.getHeight(); 088 } 089 090 public void setHeight(Measure height) { 091 dimension.setHeight(height); 092 } 093 094 @Override 095 public String toString() { 096 return new StringBuilder().append(position).append(',').append(dimension).toString(); 097 } 098 }