KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > visualcontent > ui > nodetree > SessionLogoutAction


1 /**
2  * VC Browser - Visualizes the content of a JSR 170 compatible repository
3  * Copyright (C) 2006 Sandro Böhme
4  *
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */

18 package org.visualcontent.ui.nodetree;
19
20 import org.eclipse.jface.action.IAction;
21 import org.eclipse.jface.viewers.ISelection;
22 import org.eclipse.ui.IViewActionDelegate;
23 import org.eclipse.ui.IViewPart;
24 import org.visualcontent.extensionpoints.RepositoryThrowable;
25 import org.visualcontent.extensionpoints.SessionThrowable;
26 import org.visualcontent.extensionpoints.VCRepository;
27 import org.visualcontent.extensionpoints.VCSession;
28 import org.visualcontent.ui.UiPlugin;
29
30 public class SessionLogoutAction implements IViewActionDelegate {
31
32     NodeTreeViewPart nodeTreeView=null;
33
34     public void init(IViewPart view) {
35         nodeTreeView = (NodeTreeViewPart) view;
36     }
37
38     public void run(IAction action) {
39         logout(nodeTreeView);
40     }
41
42     public static void logout(NodeTreeViewPart nodeTreeView) {
43         if (nodeTreeView!=null){
44             nodeTreeView.setInput(null);
45             try {
46                 VCRepository repository = nodeTreeView.getVcRepository();
47                 if (repository!=null){
48                     repository.releaseRepository();
49                 }
50             } catch (RepositoryThrowable e1) {
51                 UiPlugin.getDefault().showError("Could not release the repository.",e1);
52             }
53             VCSession vcSession = nodeTreeView.getVcSession();
54             if (vcSession !=null) {
55                 try {
56                     vcSession.logout();
57                 } catch (SessionThrowable e) {
58                     UiPlugin.getDefault().showError("Could not logout from the repository.",e);
59                 }
60             }
61         }
62     }
63
64     public void selectionChanged(IAction action, ISelection selection) {
65         // nothing to do here
66
}
67
68 }
69
Popular Tags