You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pivot.apache.org by rw...@apache.org on 2013/11/15 05:39:48 UTC
svn commit: r1542170 -
/pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
Author: rwhitcomb
Date: Fri Nov 15 04:39:47 2013
New Revision: 1542170
URL: http://svn.apache.org/r1542170
Log:
PIVOT-930: Show tooltip over file names in a file browser so long file names
can be completely seen.
Modified:
pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
Modified: pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java
URL: http://svn.apache.org/viewvc/pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java?rev=1542170&r1=1542169&r2=1542170&view=diff
==============================================================================
--- pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java (original)
+++ pivot/branches/2.0.x/wtk-terra/src/org/apache/pivot/wtk/skin/terra/TerraFileBrowserSkin.java Fri Nov 15 04:39:47 2013
@@ -47,8 +47,10 @@ import org.apache.pivot.wtk.ButtonPressL
import org.apache.pivot.wtk.Component;
import org.apache.pivot.wtk.ComponentKeyListener;
import org.apache.pivot.wtk.ComponentMouseButtonListener;
+import org.apache.pivot.wtk.ComponentTooltipListener;
import org.apache.pivot.wtk.Container;
import org.apache.pivot.wtk.Dimensions;
+import org.apache.pivot.wtk.Display;
import org.apache.pivot.wtk.FileBrowser;
import org.apache.pivot.wtk.FocusTraversalDirection;
import org.apache.pivot.wtk.GridPane;
@@ -72,8 +74,10 @@ import org.apache.pivot.wtk.TableView;
import org.apache.pivot.wtk.TableViewSelectionListener;
import org.apache.pivot.wtk.TableViewSortListener;
import org.apache.pivot.wtk.TaskAdapter;
+import org.apache.pivot.wtk.TextArea;
import org.apache.pivot.wtk.TextInput;
import org.apache.pivot.wtk.TextInputContentListener;
+import org.apache.pivot.wtk.Tooltip;
import org.apache.pivot.wtk.VerticalAlignment;
import org.apache.pivot.wtk.media.Image;
import org.apache.pivot.wtk.skin.FileBrowserSkin;
@@ -901,6 +905,58 @@ public class TerraFileBrowserSkin extend
});
fileTableView.setSort(TableViewFileRenderer.NAME_KEY, SortDirection.ASCENDING);
+ fileTableView.getComponentTooltipListeners().add(new ComponentTooltipListener() {
+
+ @Override
+ public void tooltipTriggered(Component component, int x, int y) {
+
+ // Check that we are on the first column.
+ if (fileTableView.getColumnAt(x) != 0) {
+ return;
+ }
+
+ // Gets the underlying file
+ File file = (File) fileTableView.getTableData().get(fileTableView.getRowAt(y));
+
+ // Construct and show the tooltip.
+ final Tooltip tooltip = new Tooltip();
+
+ String text = null;
+
+ if (file != null){
+ text = text = file.getName();
+ }
+
+ if (text == null || text.isEmpty()) {
+ return;
+ }
+
+ TextArea toolTipTextArea = new TextArea();
+
+ toolTipTextArea.setText(text);
+ toolTipTextArea.getStyles().put("wrapText", true);
+
+ tooltip.setContent(toolTipTextArea);
+
+ Point location = component.getDisplay().getMouseLocation();
+ x = location.x;
+ y = location.y;
+
+ // Ensure that the tooltip stays on screen
+ Display display = component.getDisplay();
+ int tooltipHeight = tooltip.getPreferredHeight();
+ if (y + tooltipHeight > display.getHeight()) {
+ y -= tooltipHeight;
+ }
+
+ int tooltipXOffset = 16;
+ int padding = 15;
+
+ toolTipTextArea.setMaximumWidth(display.getWidth() - ( x + tooltipXOffset + padding) );
+ tooltip.setLocation(x + tooltipXOffset, y);
+ tooltip.open(component.getWindow());
+ }
+ });
rootDirectoryChanged(fileBrowser, null);
selectedFilesChanged(fileBrowser, null);