Lior Vernia has posted comments on this change.
Change subject: webadmin: Ability to add external subnet
......................................................................
Patch Set 1:
(19 comments)
....................................................
File
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/dataprovider/AsyncDataProvider.java
Line 3444: };
Line 3445:
Frontend.getInstance().runQuery(VdcQueryType.GetExternalSubnetsOnProviderByNetwork,
new IdQueryParameters(networkId), aQuery);
Line 3446: }
Line 3447:
Line 3448: public static List<IpVersion> getExternalSubnetIpVerionList() {
I don't think this is the place for such a method, as it doesn't retrieve
anything from the backend. In fact, I don't think this functionality merits a
method at all.
Line 3449: return Arrays.asList(IpVersion.values());
Line 3450: }
Line 3451:
Line 3452: public static void getNumberOfActiveVmsInCluster(AsyncQuery
aQuery, Guid clusterId) {
....................................................
File
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/networks/NetworkExternalSubnetListModel.java
Line 56: }
Line 57:
Line 58: NewExternalSubnetModel model = new
NewExternalSubnetModel(this);
Line 59: setWindow(model);
Line 60: initNetworkInModel(model);
Is there any reason to do that here rather than encapsulate the logic in the
constructor of NewExternalSubnetModel? Especially when as far as I can see, it
has to be called whenever the dialog is instantiated.
Line 61: }
Line 62:
Line 63: private void initNetworkInModel(NewExternalSubnetModel model) {
Line 64: model.getNetwork().setItems(Arrays.asList(getEntity()));
Line 135:
Line 136: private void updateActionAvailability() {
Line 137: NetworkView network = getEntity();
Line 138:
Line 139: getNewCommand().setIsExecutionAllowed(network != null &&
network.isExternal());
I thought the subtab wasn't supposed to even be visible if the network wasn't
external?... And without this check you could just inline the getEntity().
Line 140: getRemoveCommand().setIsExecutionAllowed((getSelectedItems()
!= null && getSelectedItems().size() > 0));
Line 141: }
Line 142:
Line 143: @Override
Line 166: super.executeCommand(command);
Line 167:
Line 168: if (command == getNewCommand()) {
Line 169: newSubnet();
Line 170: }
Formatting.
Line 171: else if (command == getRemoveCommand()) {
Line 172: remove();
Line 173: }
Line 174: else if ("Cancel".equals(command.getName())) { //$NON-NLS-1$
....................................................
File
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/providers/NewExternalSubnetModel.java
Line 19: import org.ovirt.engine.ui.uicompat.ConstantsManager;
Line 20: import org.ovirt.engine.ui.uicompat.FrontendActionAsyncResult;
Line 21: import org.ovirt.engine.ui.uicompat.IFrontendActionAsyncCallback;
Line 22:
Line 23: @SuppressWarnings("rawtypes")
Please remove this.
Line 24: public class NewExternalSubnetModel extends Model {
Line 25:
Line 26: private EntityModel<String> name;
Line 27: private EntityModel<String> cidr;
Line 24: public class NewExternalSubnetModel extends Model {
Line 25:
Line 26: private EntityModel<String> name;
Line 27: private EntityModel<String> cidr;
Line 28: private ListModel<NetworkView> network;
Why is network a ListModel? Shouldn't it be just a private Network member, used
perhaps to display the network name in the dialog? Do you want to be able to
create a subnet for a network different from the one chosen in the main tab?
Line 29: private ListModel<IpVersion> ipVersion;
Line 30: private final EntityModel sourceModel;
Line 31: private ExternalSubnet subnet = null;
Line 32:
Line 26: private EntityModel<String> name;
Line 27: private EntityModel<String> cidr;
Line 28: private ListModel<NetworkView> network;
Line 29: private ListModel<IpVersion> ipVersion;
Line 30: private final EntityModel sourceModel;
This should most likely be SearchableListModel rather than EntityModel, so you
can refresh it when a new subnet is added.
Line 31: private ExternalSubnet subnet = null;
Line 32:
Line 33: public NewExternalSubnetModel(EntityModel sourceModel) {
Line 34: this.sourceModel = sourceModel;
Line 27: private EntityModel<String> cidr;
Line 28: private ListModel<NetworkView> network;
Line 29: private ListModel<IpVersion> ipVersion;
Line 30: private final EntityModel sourceModel;
Line 31: private ExternalSubnet subnet = null;
Isn't null the default value?
Line 32:
Line 33: public NewExternalSubnetModel(EntityModel sourceModel) {
Line 34: this.sourceModel = sourceModel;
Line 35:
Line 60: public EntityModel<String> getName() {
Line 61: return name;
Line 62: }
Line 63:
Line 64: public void setName(EntityModel<String> name) {
I see no reason for the setters to be public.
Line 65: this.name = name;
Line 66: }
Line 67:
Line 68: public EntityModel<String> getCidr() {
Line 89: this.ipVersion = ipVersion;
Line 90: }
Line 91:
Line 92: private void onSave()
Line 93: {
Parentheses formatting.
Line 94: if (getProgress() != null)
Line 95: {
Line 96: return;
Line 97: }
Line 90: }
Line 91:
Line 92: private void onSave()
Line 93: {
Line 94: if (getProgress() != null)
I think this isn't required.
Line 95: {
Line 96: return;
Line 97: }
Line 98:
Line 124: true);
Line 125: }
Line 126:
Line 127: public void flush() {
Line 128: if (subnet == null) {
Why not initiate the subnet to new ExternalSubnet() and get rid of this check?
Line 129: subnet = new ExternalSubnet();
Line 130: }
Line 131: subnet.setName(getName().getEntity());
Line 132: Network network = getNetwork().getSelectedItem();
Line 129: subnet = new ExternalSubnet();
Line 130: }
Line 131: subnet.setName(getName().getEntity());
Line 132: Network network = getNetwork().getSelectedItem();
Line 133: subnet.setExternalNetwork(network != null ?
network.getProvidedBy() : null);
Why should a null network be possible?
Line 134: subnet.setCidr(getCidr().getEntity());
Line 135: subnet.setIpVersion(getIpVersion().getSelectedItem());
Line 136: }
Line 137:
....................................................
File
frontend/webadmin/modules/uicompat/src/main/java/org/ovirt/engine/ui/uicompat/UIConstants.java
Line 463: @DefaultStringValue("VNIC Profiles")
Line 464: String vnicProfilesTitle();
Line 465:
Line 466: @DefaultStringValue("External Subnet")
Line 467: String externalSubnetTitle();
Shouldn't this be "New External Subnet"?
Line 468:
Line 469: @DefaultStringValue("External Subnets")
Line 470: String externalSubnetsTitle();
Line 471:
....................................................
File
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/presenter/popup/provider/ExternalSubnetPopupPresenterWidget.java
Line 16: super(eventBus, view);
Line 17: }
Line 18:
Line 19: @Override
Line 20: public void init(NewExternalSubnetModel model) {
This isn't required.
Line 21: super.init(model);
Line 22: }
....................................................
File
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ExternalSubnetPopupView.java
Line 47:
Line 48: @UiField(provided = true)
Line 49: @Path("ipVersion.selectedItem")
Line 50: @WithElementId("ipVersion")
Line 51: protected ListModelListBoxEditor<IpVersion> ipVersionEditor;
Can the GWT binder reach this when it's protected? Either way, there's no
reason why it would be different from the others...
Line 52:
Line 53: @UiField(provided = true)
Line 54: @Path("network.selectedItem")
Line 55: ListModelListBoxEditor<Object> networkEditor;
Line 51: protected ListModelListBoxEditor<IpVersion> ipVersionEditor;
Line 52:
Line 53: @UiField(provided = true)
Line 54: @Path("network.selectedItem")
Line 55: ListModelListBoxEditor<Object> networkEditor;
As I commented on NewExternalSubnetModel, I don't think this should be a list
box, maybe a label.
Line 56:
Line 57: private final Driver driver = GWT.create(Driver.class);
Line 58:
Line 59: @Inject
....................................................
File
frontend/webadmin/modules/webadmin/src/main/java/org/ovirt/engine/ui/webadmin/section/main/view/popup/provider/ExternalSubnetPopupView.ui.xml
Line 3: <ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
Line 4: xmlns:g="urn:import:com.google.gwt.user.client.ui"
xmlns:d="urn:import:org.ovirt.engine.ui.common.widget.dialog"
Line 5: xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"
Line 6:
xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"
Line 7:
xmlns:k="urn:import:org.ovirt.engine.ui.common.widget.form.key_value" >
This isn't required, as no widget here is imported from the referenced package.
Line 8:
Line 9: <ui:with field='constants'
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
Line 10:
Line 11: <d:SimpleDialogPanel width="350px" height="220px">
Line 5: xmlns:e="urn:import:org.ovirt.engine.ui.common.widget.editor"
Line 6:
xmlns:ge="urn:import:org.ovirt.engine.ui.common.widget.editor.generic"
Line 7:
xmlns:k="urn:import:org.ovirt.engine.ui.common.widget.form.key_value" >
Line 8:
Line 9: <ui:with field='constants'
type='org.ovirt.engine.ui.webadmin.ApplicationConstants' />
This isn't required, as nothing uses 'constants' here.
Line 10:
Line 11: <d:SimpleDialogPanel width="350px" height="220px">
Line 12: <d:content>
Line 13: <g:FlowPanel>
--
To view, visit http://gerrit.ovirt.org/22689
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment
Gerrit-Change-Id: I7315f9ffe29f72d06deb56dcd637c53fba47b116
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Mike Kolesnik <[email protected]>
Gerrit-Reviewer: Lior Vernia <[email protected]>
Gerrit-Reviewer: oVirt Jenkins CI Server
Gerrit-HasComments: Yes
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches