|
1 /* |
|
2 * Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). |
|
3 * All rights reserved. |
|
4 * This component and the accompanying materials are made available |
|
5 * under the terms of "Eclipse Public License v1.0" |
|
6 * which accompanies this distribution, and is available |
|
7 * at the URL "http://www.eclipse.org/legal/epl-v10.html". |
|
8 * |
|
9 * Initial Contributors: |
|
10 * Nokia Corporation - initial contribution. |
|
11 * |
|
12 * Contributors: |
|
13 * |
|
14 * Description: |
|
15 * |
|
16 */ |
|
17 |
|
18 package com.nokia.s60tools.creator.dialogs; |
|
19 |
|
20 import org.eclipse.swt.widgets.Shell; |
|
21 |
|
22 import com.nokia.s60tools.creator.components.calendar.CalendarVariables; |
|
23 import com.nokia.s60tools.creator.components.messaging.MessageVariables; |
|
24 import com.nokia.s60tools.creator.core.CreatorEditorSettings; |
|
25 import com.nokia.s60tools.creator.editors.IComponentProvider; |
|
26 import com.nokia.s60tools.creator.util.CreatorEditorConsole; |
|
27 |
|
28 /** |
|
29 * Helper class to found correct real implementing Dialog class |
|
30 * for {@link AbstractDialog} by selected component type |
|
31 */ |
|
32 public class DialogLauncher { |
|
33 |
|
34 /** |
|
35 * Get dialog by component type. Used when Add dialog is launched. |
|
36 * @param componentType |
|
37 * @param sh |
|
38 * @return aDialog |
|
39 */ |
|
40 public static AbstractDialog getDialog(String componentType, Shell sh, final IComponentProvider provider) |
|
41 { |
|
42 |
|
43 if(componentType.equals(CreatorEditorSettings.TYPE_CONTACT)){ |
|
44 return new ContactDialog(sh, provider); |
|
45 } |
|
46 else if(componentType.equals(CreatorEditorSettings.TYPE_CONTACT_SET)){ |
|
47 return new ContactSetDialog(sh, provider); |
|
48 } |
|
49 else if(componentType.equals(CreatorEditorSettings.TYPE_CONTACT_GROUP)){ |
|
50 return new ContactGroupDialog(sh, provider); |
|
51 } |
|
52 else if(componentType.equals(CreatorEditorSettings.TYPE_NOTE)){ |
|
53 return new NoteDialog(sh, provider); |
|
54 } |
|
55 else if(componentType.equals(CreatorEditorSettings.TYPE_BOOKMARK)){ |
|
56 return new BookmarkDialog(sh, provider); |
|
57 } |
|
58 else if(componentType.equals(CreatorEditorSettings.TYPE_BOOKMARK_FOLDER)){ |
|
59 return new BookmarkFolderDialog(sh, provider); |
|
60 } |
|
61 else if(componentType.equals(CreatorEditorSettings.TYPE_SAVED_PAGE)){ |
|
62 return new SavedPageDialog(sh, provider); |
|
63 } |
|
64 else if(componentType.equals(CreatorEditorSettings.TYPE_SAVED_PAGE_FOLDER)){ |
|
65 return new SavedPageFolderDialog(sh, provider); |
|
66 } |
|
67 else if(componentType.equals(CreatorEditorSettings.TYPE_LOG)){ |
|
68 return new LogDialog(sh, provider); |
|
69 } |
|
70 else if(componentType.equals(CreatorEditorSettings.TYPE_IMPS_SERVER)){ |
|
71 return new IMPSServerDialog(sh, provider); |
|
72 } |
|
73 else if(componentType.equals(CreatorEditorSettings.TYPE_CONNECTION_METHOD)){ |
|
74 return new ConnectionMethodDialog(sh, provider); |
|
75 } |
|
76 else if( |
|
77 componentType.equals(CreatorEditorSettings.TYPE_TODO) |
|
78 || componentType.equals(CreatorEditorSettings.TYPE_APPOINTMENT) |
|
79 || componentType.equals(CreatorEditorSettings.TYPE_EVENT) |
|
80 || componentType.equals(CreatorEditorSettings.TYPE_REMINDER) |
|
81 || componentType.equals(CreatorEditorSettings.TYPE_ANNIVERSARY) |
|
82 ){ |
|
83 return new CalendarDialog(sh, |
|
84 CalendarVariables.getInstance().getIdByValue(componentType), provider); |
|
85 } |
|
86 else if( |
|
87 componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_SMS) |
|
88 || componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_MMS) |
|
89 || componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_AMS) |
|
90 || componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_EMAIL) |
|
91 || componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_SMART) |
|
92 || componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_IR) |
|
93 || componentType.equals(CreatorEditorSettings.TYPE_MESSAGE_BT) |
|
94 ){ |
|
95 return new MessageDialog(sh, |
|
96 MessageVariables.getInstance().getIdByValue(componentType), provider); |
|
97 } |
|
98 else if(componentType.equals(CreatorEditorSettings.TYPE_MAIL_BOX)){ |
|
99 return new MailBoxDialog(sh, provider); |
|
100 } |
|
101 else if(componentType.equals(CreatorEditorSettings.TYPE_LANDMARK)){ |
|
102 return new LandmarkDialog(sh, provider); |
|
103 } |
|
104 else if(componentType.equals(CreatorEditorSettings.TYPE_FILE)){ |
|
105 return new FileTypeDialog(sh, provider); |
|
106 } |
|
107 else{ |
|
108 CreatorEditorConsole.getInstance().println("Unknown dialog type: " + componentType, CreatorEditorConsole.MSG_ERROR); |
|
109 |
|
110 return null; |
|
111 } |
|
112 |
|
113 } |
|
114 /** |
|
115 * Get dialog by component. Used when Edit dialog is launched. |
|
116 * @param component |
|
117 * @param sh |
|
118 * @return aDialog |
|
119 */ |
|
120 public static AbstractDialog getDialog(final IComponentProvider provider, Shell sh) |
|
121 { |
|
122 |
|
123 if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_CONTACT)){ |
|
124 return new ContactDialog(sh, provider); |
|
125 } |
|
126 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_CONTACT_SET)){ |
|
127 return new ContactSetDialog(sh, provider); |
|
128 } |
|
129 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_CONTACT_GROUP)){ |
|
130 return new ContactGroupDialog(sh, provider); |
|
131 } |
|
132 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_NOTE)){ |
|
133 return new NoteDialog(sh, provider); |
|
134 } |
|
135 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_BOOKMARK)){ |
|
136 return new BookmarkDialog(sh, provider); |
|
137 } |
|
138 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_BOOKMARK_FOLDER)){ |
|
139 return new BookmarkFolderDialog(sh, provider); |
|
140 } |
|
141 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_SAVED_PAGE)){ |
|
142 return new SavedPageDialog(sh, provider); |
|
143 } |
|
144 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_SAVED_PAGE_FOLDER)){ |
|
145 return new SavedPageFolderDialog(sh, provider); |
|
146 } |
|
147 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_LOG)){ |
|
148 return new LogDialog(sh, provider); |
|
149 } |
|
150 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_IMPS_SERVER)){ |
|
151 return new IMPSServerDialog(sh, provider); |
|
152 } |
|
153 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_CONNECTION_METHOD)){ |
|
154 return new ConnectionMethodDialog(sh, provider); |
|
155 } |
|
156 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_CALENDAR)){ |
|
157 return new CalendarDialog(sh, provider); |
|
158 } |
|
159 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_MESSAGE)){ |
|
160 return new MessageDialog(sh, provider); |
|
161 } |
|
162 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_MAIL_BOX)){ |
|
163 return new MailBoxDialog(sh, provider); |
|
164 } |
|
165 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_LANDMARK)){ |
|
166 return new LandmarkDialog(sh, provider); |
|
167 } |
|
168 else if(provider.getEditable().getType().equals(CreatorEditorSettings.TYPE_FILE)){ |
|
169 return new FileTypeDialog(sh, provider); |
|
170 } |
|
171 else{ |
|
172 CreatorEditorConsole.getInstance().println("Unknown dialog type: " + provider.getEditable().getType(), CreatorEditorConsole.MSG_ERROR); |
|
173 return null; |
|
174 } |
|
175 } |
|
176 |
|
177 |
|
178 } |