X-Git-Url: https://gerrit.simantics.org/r/gitweb?p=simantics%2Fplatform.git;a=blobdiff_plain;f=bundles%2Forg.simantics.g2d%2Fsrc%2Forg%2Fsimantics%2Fg2d%2Fgallery%2FGalleryTooltipProvider.java;fp=bundles%2Forg.simantics.g2d%2Fsrc%2Forg%2Fsimantics%2Fg2d%2Fgallery%2FGalleryTooltipProvider.java;h=220b7adb7055f192d6cc8751645c46336b80b59d;hp=1bfd23e365a361c7607af2b892f15dc73b5d1b57;hb=0ae2b770234dfc3cbb18bd38f324125cf0faca07;hpb=24e2b34260f219f0d1644ca7a138894980e25b14 diff --git a/bundles/org.simantics.g2d/src/org/simantics/g2d/gallery/GalleryTooltipProvider.java b/bundles/org.simantics.g2d/src/org/simantics/g2d/gallery/GalleryTooltipProvider.java index 1bfd23e36..220b7adb7 100644 --- a/bundles/org.simantics.g2d/src/org/simantics/g2d/gallery/GalleryTooltipProvider.java +++ b/bundles/org.simantics.g2d/src/org/simantics/g2d/gallery/GalleryTooltipProvider.java @@ -1,90 +1,90 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - *******************************************************************************/ -package org.simantics.g2d.gallery; - -import java.awt.Canvas; -import java.awt.Color; -import java.awt.Dimension; -import java.awt.Frame; -import java.awt.Graphics; -import java.awt.Image; - -import javax.swing.BorderFactory; -import javax.swing.BoxLayout; -import javax.swing.JLabel; -import javax.swing.JPanel; - -import org.simantics.g2d.element.IElement; -import org.simantics.g2d.tooltip.AWTTooltipProvider; -import org.simantics.utils.datastructures.hints.IHintContext.Key; -import org.simantics.utils.datastructures.hints.IHintContext.KeyOf; - -/** - * GalleryViewers tooltip provider - * - * @author Marko Luukkainen - * - */ -public class GalleryTooltipProvider extends AWTTooltipProvider { - - public static Key TOOLTIP_TEXT = new KeyOf(String.class, "TOOLTIP_TEXT"); - public static Key TOOLTIP_IMAGE = new KeyOf(Image.class, "TOOLTIP_IMAGE"); - - @Override - public void constructPopup(Frame frame,IElement element) { - String text = element.getHint(TOOLTIP_TEXT); - final Image image = element.getHint(TOOLTIP_IMAGE); - if (text == null && image == null) - return; - - frame.setLayout(new BoxLayout(frame, BoxLayout.X_AXIS)); - JPanel panel = new JPanel(); - panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); - Color c = new Color(255, 255, 220); - panel.setBackground(c); - panel.setBorder(BorderFactory.createLineBorder(Color.black)); - - if (image != null) { - Canvas canvas = new Canvas() { - private static final long serialVersionUID = -7357041194563374338L; - - @Override - public void paint(Graphics g) { - super.paint(g); - g.drawImage(image, 0, 0, null); - } - - @Override - public Dimension getSize() { - return new Dimension(image.getWidth(null), image.getHeight(null)); - } - - @Override - public Dimension getSize(Dimension rv) { - if (rv == null) - rv = new Dimension(); - rv.width = image.getWidth(null); - rv.height = image.getHeight(null); - return rv; - } - }; - panel.add(canvas); - } - if (text != null) { - JLabel label = new JLabel(text); - panel.add(label); - } - frame.add(panel); - - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + *******************************************************************************/ +package org.simantics.g2d.gallery; + +import java.awt.Canvas; +import java.awt.Color; +import java.awt.Dimension; +import java.awt.Frame; +import java.awt.Graphics; +import java.awt.Image; + +import javax.swing.BorderFactory; +import javax.swing.BoxLayout; +import javax.swing.JLabel; +import javax.swing.JPanel; + +import org.simantics.g2d.element.IElement; +import org.simantics.g2d.tooltip.AWTTooltipProvider; +import org.simantics.utils.datastructures.hints.IHintContext.Key; +import org.simantics.utils.datastructures.hints.IHintContext.KeyOf; + +/** + * GalleryViewers tooltip provider + * + * @author Marko Luukkainen + * + */ +public class GalleryTooltipProvider extends AWTTooltipProvider { + + public static Key TOOLTIP_TEXT = new KeyOf(String.class, "TOOLTIP_TEXT"); + public static Key TOOLTIP_IMAGE = new KeyOf(Image.class, "TOOLTIP_IMAGE"); + + @Override + public void constructPopup(Frame frame,IElement element) { + String text = element.getHint(TOOLTIP_TEXT); + final Image image = element.getHint(TOOLTIP_IMAGE); + if (text == null && image == null) + return; + + frame.setLayout(new BoxLayout(frame, BoxLayout.X_AXIS)); + JPanel panel = new JPanel(); + panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); + Color c = new Color(255, 255, 220); + panel.setBackground(c); + panel.setBorder(BorderFactory.createLineBorder(Color.black)); + + if (image != null) { + Canvas canvas = new Canvas() { + private static final long serialVersionUID = -7357041194563374338L; + + @Override + public void paint(Graphics g) { + super.paint(g); + g.drawImage(image, 0, 0, null); + } + + @Override + public Dimension getSize() { + return new Dimension(image.getWidth(null), image.getHeight(null)); + } + + @Override + public Dimension getSize(Dimension rv) { + if (rv == null) + rv = new Dimension(); + rv.width = image.getWidth(null); + rv.height = image.getHeight(null); + return rv; + } + }; + panel.add(canvas); + } + if (text != null) { + JLabel label = new JLabel(text); + panel.add(label); + } + frame.add(panel); + + } + +}