Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
View | Details | Raw Unified | Return to bug 193415
Collapse All | Expand All

(-)src/org/eclipse/ecf/presence/ui/MultiRosterView.java (-44 / +68 lines)
Lines 152-157 Link Here
152
	private IAction setInvisibleAction;
152
	private IAction setInvisibleAction;
153
153
154
	private IAction setOfflineAction;
154
	private IAction setOfflineAction;
155
	
156
	private IAction showOfflineAction;
157
	
158
	private IAction showEmptyGroupsAction;
159
	
160
	private IAction addContactAction;
155
161
156
	private IAction openChatRoomAction;
162
	private IAction openChatRoomAction;
157
163
Lines 578-583 Link Here
578
		};
584
		};
579
		setOfflineAction.setChecked(true);
585
		setOfflineAction.setChecked(true);
580
586
587
		showOfflineAction = new Action(Messages.MultiRosterView_ShowOffline,
588
				Action.AS_CHECK_BOX) {
589
			public void run() {
590
				if (isChecked()) {
591
					treeViewer.removeFilter(hideOfflineFilter);
592
				} else {
593
					treeViewer.addFilter(hideOfflineFilter);
594
				}
595
			}
596
		};
597
			
598
		showEmptyGroupsAction = new Action(
599
				Messages.MultiRosterView_ShowEmptyGroups, Action.AS_CHECK_BOX) {
600
			public void run() {
601
				if (isChecked()) {
602
					treeViewer.removeFilter(hideEmptyGroupsFilter);
603
				} else {
604
					treeViewer.addFilter(hideEmptyGroupsFilter);
605
				}
606
			}
607
		};
608
		
609
		addContactAction = new Action(Messages.MultiRosterView_AddContact,
610
				SharedImages.getImageDescriptor(SharedImages.IMG_ADD_BUDDY)) {
611
			public void run() {
612
				AddContactDialog dialog = new AddContactDialog(treeViewer
613
						.getControl().getShell());
614
				dialog.setInput(rosterAccounts);
615
				if (Window.OK == dialog.open()) {
616
					IPresenceContainerAdapter ipca = dialog.getSelection();
617
					IRosterSubscriptionSender sender = ipca.getRosterManager()
618
							.getRosterSubscriptionSender();
619
					try {
620
						sender.sendRosterAdd(dialog.getAccountID(), dialog
621
								.getAlias(), null);
622
					} catch (ECFException e) {
623
						e.printStackTrace();
624
					}
625
				}
626
			}
627
		};
628
		
581
		openChatRoomAction = new Action() {
629
		openChatRoomAction = new Action() {
582
			public void run() {
630
			public void run() {
583
				selectAndJoinChatRoomForAccounts((MultiRosterAccount[]) rosterAccounts
631
				selectAndJoinChatRoomForAccounts((MultiRosterAccount[]) rosterAccounts
Lines 793-798 Link Here
793
		fillLocalPullDown(bars.getMenuManager());
841
		fillLocalPullDown(bars.getMenuManager());
794
	}
842
	}
795
843
844
	private void setLocalPullDownEnabled(boolean enabled) {
845
		setAvailableAction.setEnabled(enabled);
846
		setAwayAction.setEnabled(enabled);
847
		setDNDAction.setEnabled(enabled);
848
		setInvisibleAction.setEnabled(enabled);
849
		setOfflineAction.setEnabled(enabled);
850
		showOfflineAction.setEnabled(enabled);
851
		showEmptyGroupsAction.setEnabled(enabled);
852
		addContactAction.setEnabled(enabled);
853
		openChatRoomAction.setEnabled(enabled);
854
		disconnectAllAccountsAction.setEnabled(enabled);
855
	}
856
	
796
	private void fillLocalPullDown(IMenuManager manager) {
857
	private void fillLocalPullDown(IMenuManager manager) {
797
		setStatusMenu = new MenuManager(Messages.MultiRosterView_SetStatusAs,
858
		setStatusMenu = new MenuManager(Messages.MultiRosterView_SetStatusAs,
798
				null);
859
				null);
Lines 801-856 Link Here
801
		setStatusMenu.add(setDNDAction);
862
		setStatusMenu.add(setDNDAction);
802
		setStatusMenu.add(setInvisibleAction);
863
		setStatusMenu.add(setInvisibleAction);
803
		setStatusMenu.add(setOfflineAction);
864
		setStatusMenu.add(setOfflineAction);
804
		setStatusMenu.setVisible(false);
805
		manager.add(setStatusMenu);
865
		manager.add(setStatusMenu);
806
		manager.add(new Separator());
866
		manager.add(new Separator());
807
867
808
		manager.add(new Action(Messages.MultiRosterView_ShowOffline,
868
		manager.add(showOfflineAction);
809
				Action.AS_CHECK_BOX) {
869
		
810
			public void run() {
811
				if (isChecked()) {
812
					treeViewer.removeFilter(hideOfflineFilter);
813
				} else {
814
					treeViewer.addFilter(hideOfflineFilter);
815
				}
816
			}
817
		});
818
		IAction showEmptyGroupsAction = new Action(
819
				Messages.MultiRosterView_ShowEmptyGroups, Action.AS_CHECK_BOX) {
820
			public void run() {
821
				if (isChecked()) {
822
					treeViewer.removeFilter(hideEmptyGroupsFilter);
823
				} else {
824
					treeViewer.addFilter(hideEmptyGroupsFilter);
825
				}
826
			}
827
		};
828
		manager.add(showEmptyGroupsAction);
870
		manager.add(showEmptyGroupsAction);
829
871
830
		manager.add(new Separator());
872
		manager.add(new Separator());
831
		manager.add(new Action(Messages.MultiRosterView_AddContact,
873
		manager.add(addContactAction);
832
				SharedImages.getImageDescriptor(SharedImages.IMG_ADD_BUDDY)) {
833
			public void run() {
834
				AddContactDialog dialog = new AddContactDialog(treeViewer
835
						.getControl().getShell());
836
				dialog.setInput(rosterAccounts);
837
				if (Window.OK == dialog.open()) {
838
					IPresenceContainerAdapter ipca = dialog.getSelection();
839
					IRosterSubscriptionSender sender = ipca.getRosterManager()
840
							.getRosterSubscriptionSender();
841
					try {
842
						sender.sendRosterAdd(dialog.getAccountID(), dialog
843
								.getAlias(), null);
844
					} catch (ECFException e) {
845
						e.printStackTrace();
846
					}
847
				}
848
			}
849
		});
850
		manager.add(new Separator());
874
		manager.add(new Separator());
851
		manager.add(openChatRoomAction);
875
		manager.add(openChatRoomAction);
852
		manager.add(new Separator());
876
		manager.add(new Separator());
853
		manager.add(disconnectAllAccountsAction);
877
		manager.add(disconnectAllAccountsAction);
878
		setLocalPullDownEnabled(false);
854
	}
879
	}
855
880
856
	/*
881
	/*
Lines 879-886 Link Here
879
904
880
	protected boolean addRosterAccount(MultiRosterAccount account) {
905
	protected boolean addRosterAccount(MultiRosterAccount account) {
881
		boolean result = account != null && rosterAccounts.add(account);
906
		boolean result = account != null && rosterAccounts.add(account);
882
		if (result)
907
		if (result) setLocalPullDownEnabled(true);
883
			disconnectAllAccountsAction.setEnabled(true);
884
		return result;
908
		return result;
885
	}
909
	}
886
910
Lines 903-910 Link Here
903
			treeViewer.remove(account.getRoster());
927
			treeViewer.remove(account.getRoster());
904
		// Remove account
928
		// Remove account
905
		rosterAccounts.remove(account);
929
		rosterAccounts.remove(account);
906
		// Disable disconnect if no more accounts
930
		// Disable local pull down window if no more accounts
907
		disconnectAllAccountsAction.setEnabled(rosterAccounts.size() > 0);
931
		setLocalPullDownEnabled(rosterAccounts.size() > 0);
908
		account.dispose();
932
		account.dispose();
909
		refreshTreeViewer(null, true);
933
		refreshTreeViewer(null, true);
910
	}
934
	}

Return to bug 193415