1765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/******************************************************************************* 2765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Copyright (c) 2011 Google, Inc. 3765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * All rights reserved. This program and the accompanying materials 4765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * are made available under the terms of the Eclipse Public License v1.0 5765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * which accompanies this distribution, and is available at 6765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * http://www.eclipse.org/legal/epl-v10.html 7765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 8765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Contributors: 9765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Google, Inc. - initial API and implementation 10765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye *******************************************************************************/ 11765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepackage org.eclipse.wb.internal.core.model.property.editor.presentation; 12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport com.google.common.collect.Lists; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.Property; 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.table.PropertyTable; 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport java.util.List; 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Implementation of {@link PropertyEditorPresentation} that contains zero or more other 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * {@link PropertyEditorPresentation}'s. 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.model.property.editor 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic class CompoundPropertyEditorPresentation extends PropertyEditorPresentation { 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye private final List<PropertyEditorPresentation> m_presentations = Lists.newArrayList(); 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Access 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Adds child {@link PropertyEditorPresentation}.<br> 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Child {@link PropertyEditorPresentation}'s are displayed from right to left. 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public void add(PropertyEditorPresentation presentation) { 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye m_presentations.add(presentation); 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // PropertyEditorPresentation 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public int show(PropertyTable propertyTable, 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye Property property, 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int x, 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int y, 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int width, 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int height) { 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int sumWidth = 0; 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye for (PropertyEditorPresentation presentation : m_presentations) { 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int presentationWidth = presentation.show(propertyTable, property, x, y, width, height); 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye sumWidth += presentationWidth; 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye width -= presentationWidth; 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return sumWidth; 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public void hide(PropertyTable propertyTable, Property property) { 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye for (PropertyEditorPresentation presentation : m_presentations) { 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye presentation.hide(propertyTable, property); 68765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 69765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 70765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 71