Revision c963be61 src/gr/grnet/pithos/web/client/FileShareDialog.java

b/src/gr/grnet/pithos/web/client/FileShareDialog.java
34 34
 */
35 35
package gr.grnet.pithos.web.client;
36 36

  
37
import com.google.gwt.event.dom.client.*;
38 37
import com.google.gwt.http.client.URL;
39
import com.google.gwt.user.client.Event;
40 38
import com.google.gwt.user.client.ui.*;
41 39
import gr.grnet.pithos.web.client.foldertree.File;
42 40
import gr.grnet.pithos.web.client.rest.HeadRequest;
......
45 43
import com.google.gwt.core.client.GWT;
46 44
import com.google.gwt.core.client.Scheduler;
47 45
import com.google.gwt.dom.client.NativeEvent;
46
import com.google.gwt.event.dom.client.ClickEvent;
47
import com.google.gwt.event.dom.client.ClickHandler;
48
import com.google.gwt.event.dom.client.KeyCodes;
48 49
import com.google.gwt.http.client.Response;
49 50
import com.google.gwt.http.client.UrlBuilder;
50 51
import com.google.gwt.resources.client.ImageResource;
......
58 59
 * UI for the "Share" command.
59 60
 */
60 61
public class FileShareDialog extends AbstractPropertiesDialog {
61
    private static final class LinkTextContextMenu extends PopupPanel {
62
        private final TextBox toCopy;
63

  
64
        public LinkTextContextMenu(TextBox toCopy) {
65
            super(true); // autoHide
66

  
67
            this.toCopy = toCopy;
68

  
69
            final MenuBar contextMenu = new MenuBar(true);
70
            final MenuItem copy = new MenuItem("Copy", false, new Command() {
71
                @Override
72
                public void execute() {
73
                    Pithos.LOG("Copying ", LinkTextContextMenu.this.toCopy.getText());
74
                    LinkTextContextMenu.this.hide();
75
                    Helpers.copyToClipboardFrom(LinkTextContextMenu.this.toCopy.getElement());
76
                }
77
            });
78
            contextMenu.addItem(copy);
79

  
80
            add(contextMenu);
81
        }
82
    }
83

  
84
    private static final class LinkTextBox extends TextBox {
85
        public LinkTextBox() {
86
            sinkEvents(Event.ONCONTEXTMENU);
87

  
88
            addHandler(new ContextMenuHandler() {
89
                @Override
90
                public void onContextMenu(ContextMenuEvent event) {
91
                    final int x = event.getNativeEvent().getClientX();
92
                    final int y = event.getNativeEvent().getClientY();
93

  
94
                    final LinkTextContextMenu menu = new LinkTextContextMenu(LinkTextBox.this);
95
                    menu.setPopupPosition(x, y);
96
                    menu.show();
97

  
98
                }
99
            }, ContextMenuEvent.getType());
100
        }
101
    }
102

  
103 62
    // For public sharing
104 63
	private final HorizontalPanel publicPathPanel = new HorizontalPanel();
105
	private final TextBox publicPathText = new LinkTextBox();
64
	private final TextBox publicPathText = new TextBox();
106 65

  
107 66
    // For private sharing
108 67
    private final HorizontalPanel privatePathPanel = new HorizontalPanel();
109
    private final TextBox privatePathText = new LinkTextBox();
68
    private final TextBox privatePathText = new TextBox();
69
    private final VerticalPanel privatePermSuperPanel = new VerticalPanel();
110 70
    private PermissionsList permList;
111 71
	
112 72
	/**
......
354 314
        privatePathPanel.addStyleName("pithos-TabPanelBottom");
355 315

  
356 316
        privatePathText.setWidth(Const.PERCENT_100);
357

  
358 317
        privatePathText.addClickHandler(new ClickHandler() {
359 318
            @Override
360 319
            public void onClick(ClickEvent event) {

Also available in: Unified diff