Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(60)

Side by Side Diff: plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/launcher/WipRemoteTab.java

Issue 10829181: Redesign TabBase to get rid of mandatory inheritance of dialog element interfaces (Closed) Base URL: https://chromedevtools.googlecode.com/svn/trunk
Patch Set: fcr Created 8 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/launcher/TabBase.java ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package org.chromium.debug.ui.launcher; 5 package org.chromium.debug.ui.launcher;
6 6
7 import java.util.ArrayList; 7 import java.util.ArrayList;
8 import java.util.Arrays; 8 import java.util.Arrays;
9 import java.util.Collections; 9 import java.util.Collections;
10 import java.util.LinkedHashMap; 10 import java.util.LinkedHashMap;
11 import java.util.List; 11 import java.util.List;
12 import java.util.Map; 12 import java.util.Map;
13 13
14 import org.chromium.debug.core.model.LaunchParams; 14 import org.chromium.debug.core.model.LaunchParams;
15 import org.chromium.debug.core.model.LaunchParams.ValueConverter; 15 import org.chromium.debug.core.model.LaunchParams.ValueConverter;
16 import org.chromium.debug.ui.PluginUtil; 16 import org.chromium.debug.ui.PluginUtil;
17 import org.chromium.debug.ui.launcher.LaunchTabGroup.Params; 17 import org.chromium.debug.ui.launcher.LaunchTabGroup.Params;
18 import org.chromium.sdk.wip.WipBackend; 18 import org.chromium.sdk.wip.WipBackend;
19 import org.chromium.sdk.wip.eclipse.BackendRegistry; 19 import org.chromium.sdk.wip.eclipse.BackendRegistry;
20 import org.eclipse.core.runtime.CoreException; 20 import org.eclipse.core.runtime.CoreException;
21 import org.eclipse.debug.core.ILaunchConfiguration; 21 import org.eclipse.debug.core.ILaunchConfiguration;
22 import org.eclipse.jface.preference.BooleanFieldEditor;
23 import org.eclipse.jface.preference.IntegerFieldEditor;
24 import org.eclipse.jface.preference.PreferenceStore; 22 import org.eclipse.jface.preference.PreferenceStore;
25 import org.eclipse.jface.preference.StringFieldEditor;
26 import org.eclipse.swt.SWT; 23 import org.eclipse.swt.SWT;
27 import org.eclipse.swt.events.SelectionEvent; 24 import org.eclipse.swt.events.SelectionEvent;
28 import org.eclipse.swt.events.SelectionListener; 25 import org.eclipse.swt.events.SelectionListener;
29 import org.eclipse.swt.graphics.Font; 26 import org.eclipse.swt.graphics.Font;
30 import org.eclipse.swt.layout.GridData; 27 import org.eclipse.swt.layout.GridData;
31 import org.eclipse.swt.layout.GridLayout; 28 import org.eclipse.swt.layout.GridLayout;
32 import org.eclipse.swt.widgets.Combo; 29 import org.eclipse.swt.widgets.Combo;
33 import org.eclipse.swt.widgets.Composite; 30 import org.eclipse.swt.widgets.Composite;
34 import org.eclipse.swt.widgets.Group; 31 import org.eclipse.swt.widgets.Group;
35 import org.eclipse.swt.widgets.Text; 32 import org.eclipse.swt.widgets.Text;
36 33
37 class WipRemoteTab extends ChromiumRemoteTab<WipRemoteTab.WipTabElements> { 34 class WipRemoteTab extends ChromiumRemoteTab<WipRemoteTab.WipTabElements> {
38 private final Map<String, WipBackend> backendMap; 35 private final Map<String, WipBackend> backendMap;
39 36
40 WipRemoteTab() { 37 WipRemoteTab() {
41 super(PARAMS); 38 super(PARAMS);
42 39
43 backendMap = new LinkedHashMap<String, WipBackend>(); 40 backendMap = new LinkedHashMap<String, WipBackend>();
44 for (WipBackend b : BackendRegistry.INSTANCE.getBackends()) { 41 for (WipBackend b : BackendRegistry.INSTANCE.getBackends()) {
45 backendMap.put(b.getId(), b); 42 backendMap.put(b.getId(), b);
46 } 43 }
47 } 44 }
48 45
49 interface WipTabElements extends ChromiumRemoteTab.TabElements { 46 interface WipTabElements {
50 BackendSelectorControl getBackendSelector(); 47 BackendSelectorControl getBackendSelector();
48 ChromiumRemoteTab.TabElements getBase();
51 } 49 }
52 50
53 @Override 51 @Override
54 protected String getWarning(ILaunchConfiguration config) throws CoreException { 52 protected String getWarning(ILaunchConfiguration config) throws CoreException {
55 String result = super.getWarning(config); 53 String result = super.getWarning(config);
56 if (result != null) { 54 if (result != null) {
57 return result; 55 return result;
58 } 56 }
59 String backendId = config.getAttribute(LaunchParams.WIP_BACKEND_ID, (String) null); 57 String backendId = config.getAttribute(LaunchParams.WIP_BACKEND_ID, (String) null);
60 if (backendId == null) { 58 if (backendId == null) {
61 return "Wip backend should be selected"; 59 return "Wip backend should be selected";
62 } 60 }
63 if (backendMap.get(backendId) == null) { 61 if (backendMap.get(backendId) == null) {
64 return "Unknown Wip backend id"; 62 return "Unknown Wip backend id";
65 } 63 }
66 return null; 64 return null;
67 } 65 }
68 66
69 @Override 67 @Override
70 protected WipTabElements createDialogElements(Composite composite, final Runna ble modifyListener, 68 protected WipTabElements createDialogElements(Composite composite, final Runna ble modifyListener,
71 PreferenceStore store) { 69 PreferenceStore store) {
72 final TabElements basicElements = 70 final TabElements basicElements =
73 createBasicTabElements(composite, modifyListener, store, getParams()); 71 createBasicTabElements(composite, modifyListener, store, getParams());
74 72
75 final BackendSelectorControl backendSelector = 73 final BackendSelectorControl backendSelector =
76 new BackendSelectorControl(composite, backendMap, modifyListener); 74 new BackendSelectorControl(composite, backendMap, modifyListener);
77 backendSelector.getMainControl().setLayoutData(new GridData(GridData.FILL_HO RIZONTAL)); 75 backendSelector.getMainControl().setLayoutData(new GridData(GridData.FILL_HO RIZONTAL));
78 76
79 return new WipTabElements() { 77 return new WipTabElements() {
80 @Override public StringFieldEditor getHost() {
81 return basicElements.getHost();
82 }
83 @Override public IntegerFieldEditor getPort() {
84 return basicElements.getPort();
85 }
86 @Override public BooleanFieldEditor getAddNetworkConsole() {
87 return basicElements.getAddNetworkConsole();
88 }
89 @Override public RadioButtonsLogic<Integer> getBreakpointRadioButtons() {
90 return basicElements.getBreakpointRadioButtons();
91 }
92 @Override public BackendSelectorControl getBackendSelector() { 78 @Override public BackendSelectorControl getBackendSelector() {
93 return backendSelector; 79 return backendSelector;
94 } 80 }
81 @Override
82 public TabElements getBase() {
83 return basicElements;
84 }
95 }; 85 };
96 } 86 }
97 87
98 @Override 88 @Override
99 protected List<? extends TabField<?, ?, ? super WipTabElements, Params>> getTa bFields() { 89 protected TabFieldList<? super WipTabElements, ? super Params> getTabFields() {
100 return WIP_TAB_FIELDS; 90 return WIP_TAB_FIELDS;
101 } 91 }
102 92
103 private static final List<? extends TabField<?, ?, ? super WipTabElements, Par ams>> 93 private static final TabFieldList<? super WipTabElements, ? super Params>
104 WIP_TAB_FIELDS; 94 WIP_TAB_FIELDS;
105 static { 95 static {
106 List<TabField<?, ?, ? super WipTabElements, Params>> list = 96 TabField<String, String, WipTabElements, Params> backendChooser =
107 new ArrayList<TabField<?, ?, ? super WipTabElements, Params>>(5); 97 new TabField<String, String, WipTabElements, Params>(
108
109 list.addAll(BASIC_TAB_FIELDS);
110
111 list.add(new TabField<String, String, WipTabElements, Params>(
112 LaunchParams.WIP_BACKEND_ID, TypedMethods.STRING, 98 LaunchParams.WIP_BACKEND_ID, TypedMethods.STRING,
113 new FieldAccess<String, WipTabElements>() { 99 new FieldAccess<String, WipTabElements>() {
114 @Override void setValue(String value, WipTabElements tabElements) { 100 @Override void setValue(String value, WipTabElements tabElements) {
115 tabElements.getBackendSelector().setId(value); 101 tabElements.getBackendSelector().setId(value);
116 } 102 }
117 @Override String getValue(WipTabElements tabElements) { 103 @Override String getValue(WipTabElements tabElements) {
118 return tabElements.getBackendSelector().getId(); 104 return tabElements.getBackendSelector().getId();
119 } 105 }
120 }, 106 },
121 new DefaultsProvider<String, Params>() { 107 new DefaultsProvider<String, Params>() {
122 @Override String getFallbackValue() { 108 @Override String getFallbackValue() {
123 // TODO: support default value from eclipse variables. 109 // TODO: support default value from eclipse variables.
124 return null; 110 return null;
125 } 111 }
126 @Override String getInitialConfigValue(Params context) { 112 @Override String getInitialConfigValue(Params context) {
127 // TODO: support default value from eclipse variables. 113 // TODO: support default value from eclipse variables.
128 return null; 114 return null;
129 } 115 }
130 }, 116 },
131 ValueConverter.<String>getTrivial())); 117 ValueConverter.<String>getTrivial());
132 118
133 WIP_TAB_FIELDS = Collections.unmodifiableList(list); 119 List<TabFieldList<? super WipTabElements, ? super Params>> list =
120 new ArrayList<TabFieldList<? super WipTabElements, ? super Params>>(2);
121 list.add(createFieldListAdapting(BASIC_TAB_FIELDS,
122 new Adapter<WipTabElements, TabElements>() {
123 @Override
124 public TabElements get(WipTabElements from) {
125 return from.getBase();
126 }
127 }));
128 list.add(createFieldListImpl(Collections.singletonList(backendChooser)));
129
130 WIP_TAB_FIELDS = createCompositeFieldList(list);
134 } 131 }
135 132
136 private static final Params PARAMS = new Params(HostChecker.LOCAL_ONLY, 133 private static final Params PARAMS = new Params(HostChecker.LOCAL_ONLY,
137 Messages.ChromiumRemoteTab_URL, false); 134 Messages.ChromiumRemoteTab_URL, false);
138 135
139 /** 136 /**
140 * UI control elements that allows to choose {@link WipBackend}. It consists o f a dialog group, 137 * UI control elements that allows to choose {@link WipBackend}. It consists o f a dialog group,
141 * that contains a drop-down list with backend ids and a multiline text field with backend 138 * that contains a drop-down list with backend ids and a multiline text field with backend
142 * description. 139 * description.
143 */ 140 */
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
224 textContent = backend.getDescription(); 221 textContent = backend.getDescription();
225 } 222 }
226 text.setText(textContent); 223 text.setText(textContent);
227 } 224 }
228 225
229 Group getMainControl() { 226 Group getMainControl() {
230 return mainControl; 227 return mainControl;
231 } 228 }
232 } 229 }
233 } 230 }
OLDNEW
« no previous file with comments | « plugins/org.chromium.debug.ui/src/org/chromium/debug/ui/launcher/TabBase.java ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698