Revision 80a65a5f

b/src/gr/grnet/pithos/web/client/Pithos.java
346 346
            				updateStatistics();
347 347
            			}
348 348
            		});
349
            		showRelevantToolbarButtons();
349 350
                }
350
                showRelevantToolbarButtons();
351
				else {
352
					if (getSelectedTree().equals(folderTreeView))
353
						setSelectedTree(null);
354
					if (getSelectedTree() == null)
355
						showRelevantToolbarButtons();
356
				}
351 357
            }
352 358
        });
353 359
        selectionModels.add(folderTreeSelectionModel);
......
459 465
            }
460 466
        });
461 467
        
462
        Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
463
			
464
			@Override
465
			public boolean execute() {
466
				Folder f = getSelection();
467
				if (f != null) {
468
					if (getSelectedTree().equals(folderTreeView))
469
						updateFolder(f, true, null);
470
					else if (getSelectedTree().equals(mysharedTreeView))
471
						updateSharedFolder(f, true);
472
				}
473
				return true;
474
			}
475
		}, 3000);
468
//        Scheduler.get().scheduleFixedDelay(new RepeatingCommand() {
469
//			
470
//			@Override
471
//			public boolean execute() {
472
//				Folder f = getSelection();
473
//				if (f != null) {
474
//					if (getSelectedTree().equals(folderTreeView))
475
//						updateFolder(f, true, null);
476
//					else if (getSelectedTree().equals(mysharedTreeView))
477
//						updateSharedFolder(f, true);
478
//				}
479
//				return true;
480
//			}
481
//		}, 3000);
476 482
    }
477 483

  
478 484
    public void applyPermissions(Folder f) {
......
503 509
    			c.removeStyleName("cellTreeWidget-selectedTree");
504 510
    	
505 511
        for (SingleSelectionModel s : selectionModels)
506
            if (!s.equals(model))
512
            if (!s.equals(model) && s.getSelectedObject() != null)
507 513
                s.setSelected(s.getSelectedObject(), false);
508 514
    }
509 515

  
......
1086 1092
		return selectedTree;
1087 1093
	}
1088 1094
	
1095
	public void setSelectedTree(TreeView selected) {
1096
		selectedTree = selected;
1097
	}
1098

  
1089 1099
	public Folder getSelection() {
1090 1100
		return selectedTree.getSelection();
1091 1101
	}
......
1115 1125
		            deselectOthers(mysharedTreeView, mysharedTreeSelectionModel);
1116 1126
		            upload.setEnabled(false);
1117 1127
		            updateSharedFolder(mysharedTreeSelectionModel.getSelectedObject(), true);
1128
					showRelevantToolbarButtons();
1118 1129
		        }
1119
		        showRelevantToolbarButtons();
1130
				else {
1131
					if (getSelectedTree().equals(mysharedTreeView))
1132
						setSelectedTree(null);
1133
					if (getSelectedTree() == null)
1134
						showRelevantToolbarButtons();
1135
				}
1120 1136
 		    }
1121 1137
		});
1122 1138
		selectionModels.add(mysharedTreeSelectionModel);
......
1143 1159
		            otherSharedTreeView.addStyleName("cellTreeWidget-selectedTree");
1144 1160
		            applyPermissions(otherSharedTreeSelectionModel.getSelectedObject());
1145 1161
		            updateOtherSharedFolder(otherSharedTreeSelectionModel.getSelectedObject(), true);
1162
					showRelevantToolbarButtons();
1146 1163
		        }
1147
		        showRelevantToolbarButtons();
1164
				else {
1165
					if (getSelectedTree().equals(otherSharedTreeView))
1166
						setSelectedTree(null);
1167
					if (getSelectedTree() == null)
1168
						showRelevantToolbarButtons();
1169
				}
1148 1170
 		    }
1149 1171
		});
1150 1172
		selectionModels.add(otherSharedTreeSelectionModel);
b/src/gr/grnet/pithos/web/client/Toolbar.java
153 153
	}
154 154
	
155 155
	public void showRelevantButtons() {
156
		final Folder folder = app.getSelectedTree().getSelection();
157
		if (folder != null) {
158
			app.scheduleFolderHeadCommand(folder, new Command() {
159
				
160
				@Override
161
				public void execute() {
162
			        Boolean[] permissions = folder.getPermissions().get(app.getUsername());
163
			    	boolean canWrite = folder.getOwner().equals(app.getUsername()) || (permissions!= null && permissions[1] != null && permissions[1]);
164
			    	boolean isFolderTreeSelected = app.getSelectedTree().equals(app.getFolderTreeView());
165
			    	boolean otherSharedTreeSelected = app.getSelectedTree().equals(app.getOtherSharedTreeView());
166
			    	
167
			    	if (isFolderTreeSelected || otherSharedTreeSelected)
168
			    		refreshButton.setVisible(true);
169
			    	else
170
			    		refreshButton.setVisible(true);
171
			    	
172
			    	if (!folder.isInTrash() && canWrite) {
173
			    		if (isFolderTreeSelected || otherSharedTreeSelected)
174
			    			newFolderButton.setVisible(true);
175
			    		if (isFolderTreeSelected && !folder.isContainer())
176
			    			shareFolderButton.setVisible(true);
177
			    		else
178
			    			shareFolderButton.setVisible(false);
179
			    	}
180
			    	else {
181
			    		newFolderButton.setVisible(false);
182
			    		shareFolderButton.setVisible(false);
183
			    	}
184
				}
185
			});
156
		TreeView selectedTree = app.getSelectedTree();
157
		if (selectedTree != null) {
158
			final Folder folder = app.getSelectedTree().getSelection();
159
			if (folder != null) {
160
				app.scheduleFolderHeadCommand(folder, new Command() {
161
					
162
					@Override
163
					public void execute() {
164
				        Boolean[] permissions = folder.getPermissions().get(app.getUsername());
165
				    	boolean canWrite = folder.getOwner().equals(app.getUsername()) || (permissions!= null && permissions[1] != null && permissions[1]);
166
				    	boolean isFolderTreeSelected = app.getSelectedTree().equals(app.getFolderTreeView());
167
				    	boolean otherSharedTreeSelected = app.getSelectedTree().equals(app.getOtherSharedTreeView());
168
				    	
169
				    	if (isFolderTreeSelected || otherSharedTreeSelected)
170
				    		refreshButton.setVisible(true);
171
				    	else
172
				    		refreshButton.setVisible(true);
173
				    	
174
				    	if (!folder.isInTrash() && canWrite) {
175
				    		if (isFolderTreeSelected || otherSharedTreeSelected)
176
				    			newFolderButton.setVisible(true);
177
				    		if (isFolderTreeSelected && !folder.isContainer())
178
				    			shareFolderButton.setVisible(true);
179
				    		else
180
				    			shareFolderButton.setVisible(false);
181
				    	}
182
				    	else {
183
				    		newFolderButton.setVisible(false);
184
				    		shareFolderButton.setVisible(false);
185
				    	}
186
					}
187
				});
188
			}
189
			else {
190
				newFolderButton.setVisible(false);
191
				shareFolderButton.setVisible(false);
192
				refreshButton.setVisible(false);
193
			}
186 194
		}
187 195
		else {
188 196
			newFolderButton.setVisible(false);
......
190 198
			refreshButton.setVisible(false);
191 199
		}
192 200

  
193
        menu = new ToolsMenu(app, Pithos.images, app.getSelectedTree(), app.getSelectedTree().getSelection(), app.getFileList().getSelectedFiles());
194
        if (!menu.isEmpty())
195
        	toolsButton.setVisible(true);
196
        else
197
        	toolsButton.setVisible(false);
201
		if (selectedTree != null) {
202
	        menu = new ToolsMenu(app, Pithos.images, selectedTree, selectedTree.getSelection(), app.getFileList().getSelectedFiles());
203
	        if (!menu.isEmpty())
204
	        	toolsButton.setVisible(true);
205
	        else
206
	        	toolsButton.setVisible(false);
207
		}
198 208
    }
199 209
}
b/src/gr/grnet/pithos/web/client/grouptree/GroupTreeViewModel.java
141 141
				if (rootSelectionModel.getSelectedObject() != null) {
142 142
					app.deselectOthers(app.getGroupTreeView(), rootSelectionModel);
143 143
					app.showFiles(new HashSet<File>());
144
					app.showRelevantToolbarButtons();
145
				}
146
				else {
147
					if (app.getSelectedTree().equals(app.getGroupTreeView()))
148
						app.setSelectedTree(null);
149
					if (app.getSelectedTree() == null)
150
						app.showRelevantToolbarButtons();
144 151
				}
145
				app.showRelevantToolbarButtons();
146 152
			}
147 153
		});
148 154

  
......
155 161
				if (groupSelectionModel.getSelectedObject() != null) {
156 162
					app.deselectOthers(app.getGroupTreeView(), groupSelectionModel);
157 163
					app.showFiles(new HashSet<File>());
164
					app.showRelevantToolbarButtons();
165
				}
166
				else {
167
					if (app.getSelectedTree().equals(app.getGroupTreeView()))
168
						app.setSelectedTree(null);
169
					if (app.getSelectedTree() == null)
170
						app.showRelevantToolbarButtons();
158 171
				}
159
				app.showRelevantToolbarButtons();
160 172
			}
161 173
		});
162 174

  
......
169 181
				if (userSelectionModel.getSelectedObject() != null) {
170 182
					app.deselectOthers(app.getGroupTreeView(), userSelectionModel);
171 183
					app.showFiles(new HashSet<File>());
184
					app.showRelevantToolbarButtons();
185
				}
186
				else {
187
					if (app.getSelectedTree().equals(app.getGroupTreeView()))
188
						app.setSelectedTree(null);
189
					if (app.getSelectedTree() == null)
190
						app.showRelevantToolbarButtons();
172 191
				}
173
				app.showRelevantToolbarButtons();
174 192
			}
175 193
		});
176 194
}
b/src/gr/grnet/pithos/web/client/mysharedtree/MysharedTreeViewModel.java
131 131
                    	app.deselectOthers(app.getMySharedTreeView(), selectionModel2);
132 132
                    	app.applyPermissions(null);
133 133
                    	fetchSharedFiles(true);
134
    					app.showRelevantToolbarButtons();
134 135
                    }
135
                    app.showRelevantToolbarButtons();
136
    				else {
137
    					if (app.getSelectedTree().equals(app.getMySharedTreeView()))
138
    						app.setSelectedTree(null);
139
    					if (app.getSelectedTree() == null)
140
    						app.showRelevantToolbarButtons();
141
    				}
136 142
                }
137 143
            });
138 144
            app.addSelectionModel(selectionModel2);
b/src/gr/grnet/pithos/web/client/othersharedtree/OtherSharedTreeViewModel.java
133 133
                    	app.deselectOthers(app.getOtherSharedTreeView(), selectionModel2);
134 134
                    	app.applyPermissions(null);
135 135
                    	app.showFiles(new HashSet<File>());
136
    					app.showRelevantToolbarButtons();
136 137
                    }
137
                    app.showRelevantToolbarButtons();
138
    				else {
139
    					if (app.getSelectedTree().equals(app.getOtherSharedTreeView()))
140
    						app.setSelectedTree(null);
141
    					if (app.getSelectedTree() == null)
142
    						app.showRelevantToolbarButtons();
143
    				}
138 144
                }
139 145
            });
140 146
            app.addSelectionModel(selectionModel2);
......
170 176
	            				userDataProviderMap.put(username, new ListDataProvider<Folder>());
171 177
	            			}
172 178
	                    	fetchSharedFiles(username, userDataProviderMap.get(username));
179
	    					app.showRelevantToolbarButtons();
173 180
	                    }
174
	                    app.showRelevantToolbarButtons();
181
	    				else {
182
	    					if (app.getSelectedTree().equals(app.getOtherSharedTreeView()))
183
	    						app.setSelectedTree(null);
184
	    					if (app.getSelectedTree() == null)
185
	    						app.showRelevantToolbarButtons();
186
	    				}
175 187
	                }
176 188
	            });
177 189
	            app.addSelectionModel(selectionModel3);

Also available in: Unified diff