Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 = new TabFie ld<String, String, WipTabElements, Params>( |
|
apavlov
2012/08/06 08:19:06
line way too long
Peter Rybin
2012/08/06 22:40:35
Done.
| |
| 107 new ArrayList<TabField<?, ?, ? super WipTabElements, Params>>(5); | |
| 108 | |
| 109 list.addAll(BASIC_TAB_FIELDS); | |
| 110 | |
| 111 list.add(new TabField<String, String, WipTabElements, Params>( | |
| 112 LaunchParams.WIP_BACKEND_ID, TypedMethods.STRING, | 97 LaunchParams.WIP_BACKEND_ID, TypedMethods.STRING, |
| 113 new FieldAccess<String, WipTabElements>() { | 98 new FieldAccess<String, WipTabElements>() { |
| 114 @Override void setValue(String value, WipTabElements tabElements) { | 99 @Override void setValue(String value, WipTabElements tabElements) { |
| 115 tabElements.getBackendSelector().setId(value); | 100 tabElements.getBackendSelector().setId(value); |
| 116 } | 101 } |
| 117 @Override String getValue(WipTabElements tabElements) { | 102 @Override String getValue(WipTabElements tabElements) { |
| 118 return tabElements.getBackendSelector().getId(); | 103 return tabElements.getBackendSelector().getId(); |
| 119 } | 104 } |
| 120 }, | 105 }, |
| 121 new DefaultsProvider<String, Params>() { | 106 new DefaultsProvider<String, Params>() { |
| 122 @Override String getFallbackValue() { | 107 @Override String getFallbackValue() { |
| 123 // TODO: support default value from eclipse variables. | 108 // TODO: support default value from eclipse variables. |
| 124 return null; | 109 return null; |
| 125 } | 110 } |
| 126 @Override String getInitialConfigValue(Params context) { | 111 @Override String getInitialConfigValue(Params context) { |
| 127 // TODO: support default value from eclipse variables. | 112 // TODO: support default value from eclipse variables. |
| 128 return null; | 113 return null; |
| 129 } | 114 } |
| 130 }, | 115 }, |
| 131 ValueConverter.<String>getTrivial())); | 116 ValueConverter.<String>getTrivial()); |
| 132 | 117 |
| 133 WIP_TAB_FIELDS = Collections.unmodifiableList(list); | 118 List<TabFieldList<? super WipTabElements, ? super Params>> list = new Array List<TabFieldList<? super WipTabElements, ? super Params>>(2); |
|
apavlov
2012/08/06 08:19:06
line way too long
Peter Rybin
2012/08/06 22:40:35
Done.
| |
| 119 list.add(createFieldListAdapting(BASIC_TAB_FIELDS, | |
| 120 new Adapter<WipTabElements, TabElements>() { | |
| 121 @Override | |
| 122 public TabElements get(WipTabElements from) { | |
| 123 return from.getBase(); | |
| 124 } | |
| 125 })); | |
| 126 list.add(createFieldListImpl(Collections.singletonList(backendChooser))); | |
| 127 | |
| 128 WIP_TAB_FIELDS = createCompositeFieldList(list); | |
| 134 } | 129 } |
| 135 | 130 |
| 136 private static final Params PARAMS = new Params(HostChecker.LOCAL_ONLY, | 131 private static final Params PARAMS = new Params(HostChecker.LOCAL_ONLY, |
| 137 Messages.ChromiumRemoteTab_URL, false); | 132 Messages.ChromiumRemoteTab_URL, false); |
| 138 | 133 |
| 139 /** | 134 /** |
| 140 * UI control elements that allows to choose {@link WipBackend}. It consists o f a dialog group, | 135 * 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 | 136 * that contains a drop-down list with backend ids and a multiline text field with backend |
| 142 * description. | 137 * description. |
| 143 */ | 138 */ |
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 224 textContent = backend.getDescription(); | 219 textContent = backend.getDescription(); |
| 225 } | 220 } |
| 226 text.setText(textContent); | 221 text.setText(textContent); |
| 227 } | 222 } |
| 228 | 223 |
| 229 Group getMainControl() { | 224 Group getMainControl() { |
| 230 return mainControl; | 225 return mainControl; |
| 231 } | 226 } |
| 232 } | 227 } |
| 233 } | 228 } |
| OLD | NEW |