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.table; 12765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 13765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.widgets.Composite; 14765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.widgets.Control; 15765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.swt.widgets.Shell; 16765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyeimport org.eclipse.wb.internal.core.model.property.Property; 17765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 18765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye/** 19765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * Implementation of {@link PropertyTooltipProvider} for text. 20765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * 21765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @author scheglov_ke 22765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @coverage core.model.property.table 23765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 24765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbyepublic abstract class PropertyTooltipTextProvider extends PropertyTooltipProvider { 25765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 26765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 27765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // PropertyTooltipProvider 28765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 29765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 30765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 31765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public Control createTooltipControl(Property property, 32765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye Composite parent, 33765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye int availableWidth, 34765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye IPropertyTooltipSite site) { 35765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // prepare header and content 36765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye String header = null; 37765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye String content = null; 38765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye try { 39765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // BEGIN ADT MODIFICATIONS 40765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // was: header = property.getTitle(); 41765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye header = property.getName(); 42765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // END ADT MODIFICATIONS 43765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye content = getText(property); 44765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } catch (Throwable e) { 45765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 46765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye if (header == null || content == null) { 47765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return null; 48765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 49765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // create tooltip Control 50765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye return HtmlTooltipHelper.createTooltipControl(parent, header, content, 8); 51765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 52765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 53765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye @Override 54765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye public void show(Shell shell) { 55765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // do nothing, Shell will be displayed when Browser will complete rendering 56765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye } 57765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye 58765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 59765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 60765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // Text 61765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye // 62765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye //////////////////////////////////////////////////////////////////////////// 63765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye /** 64765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye * @return the text to show as tooltip. 65765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye */ 66765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye protected abstract String getText(Property property) throws Exception; 67765e52e2d30d0754625b8c7af6c36e93612f15beTor Norbye} 68