use of org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkLabelModel in project ovirt-engine by oVirt.
the class HostSetupNetworksModel method onOperation.
public void onOperation(NetworkOperation operation, final NetworkCommand networkCommand) {
Model popupWindow;
UICommand cancelCommand = new UICommand("Cancel", new // $NON-NLS-1$
BaseCommandTarget() {
@Override
public void executeCommand(UICommand command) {
sourceListModel.setConfirmWindow(null);
}
});
cancelCommand.setTitle(ConstantsManager.getInstance().getConstants().cancel());
cancelCommand.setIsCancel(true);
if (operation.isNullOperation()) {
return;
} else if (operation == NetworkOperation.BOND_WITH || operation == NetworkOperation.JOIN_BONDS) {
final SetupNetworksBondModel bondPopup;
boolean doesBondHaveVmNetworkAttached = doesBondHaveVmNetworkAttached((NetworkInterfaceModel) networkCommand.getOp1(), (NetworkInterfaceModel) networkCommand.getOp2());
if (operation == NetworkOperation.BOND_WITH) {
bondPopup = new SetupNetworksAddBondModel(getFreeBonds(), nextBondName, doesBondHaveVmNetworkAttached);
} else {
bondPopup = new SetupNetworksJoinBondsModel(getFreeBonds(), (BondNetworkInterfaceModel) networkCommand.getOp1(), (BondNetworkInterfaceModel) networkCommand.getOp2(), doesBondHaveVmNetworkAttached);
}
bondPopup.getCommands().add(new UICommand("OK", new // $NON-NLS-1$
BaseCommandTarget() {
@Override
public void executeCommand(UICommand command) {
if (!bondPopup.validate()) {
return;
}
sourceListModel.setConfirmWindow(null);
CreateOrUpdateBond bond = new CreateOrUpdateBond();
bond.setName(bondPopup.getBond().getSelectedItem());
setBondOptions(bond, bondPopup);
NetworkInterfaceModel nic1 = (NetworkInterfaceModel) networkCommand.getOp1();
NetworkInterfaceModel nic2 = (NetworkInterfaceModel) networkCommand.getOp2();
// Store networks
List<LogicalNetworkModel> networks = new ArrayList<>();
networks.addAll(nic1.getItems());
networks.addAll(nic2.getItems());
// Store labels
List<NetworkLabelModel> labels = new ArrayList<>();
labels.addAll(nic1.getLabels());
labels.addAll(nic2.getLabels());
networkCommand.execute(bond);
/*
* We are calling the <code>redraw()</code> to create the BondModel which is needed by the following
* operations (attaching the networks and the labels to the bond).
*
* For more details @see #redraw. After executing the <code>networkCommand</code> which creates the
* bond, the bondModel still not exist (only the <code>hostSetupNetworksParametersData.bonds</code>
* are updated). <code>redraw()</code> has to be called to create it.
*/
redraw();
// Attach the previous networks
attachNetworks(bond.getName(), networks);
// Attach previous labels
attachLabels(bond.getName(), labels);
redraw();
}
}));
popupWindow = bondPopup;
} else if (networkCommand.getOp1() == getNewNetworkLabelModel()) {
final SetupNetworksLabelModel labelPopup = new SetupNetworksLabelModel(dcLabels);
labelPopup.getCommands().add(new UICommand("OK", new // $NON-NLS-1$
BaseCommandTarget() {
@Override
public void executeCommand(UICommand uiCommand) {
if (!labelPopup.validate()) {
return;
}
sourceListModel.setConfirmWindow(null);
String label = labelPopup.getLabel().getEntity();
dcLabels.add(label);
NetworkOperation.LABEL.getCommand(new NetworkLabelModel(label, HostSetupNetworksModel.this), networkCommand.getOp2(), hostSetupNetworksParametersData).execute();
redraw();
}
}));
popupWindow = labelPopup;
} else {
// just execute the command
networkCommand.execute();
redraw();
return;
}
// add cancel
popupWindow.getCommands().add(cancelCommand);
// set window
sourceListModel.setConfirmWindow(popupWindow);
}
use of org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkLabelModel in project ovirt-engine by oVirt.
the class HostSetupNetworksPopupView method updateLabels.
private void updateLabels(NetworkLabelModel newLabelModel, List<NetworkLabelModel> labels) {
labelsList.clear();
List<NetworkLabelPanel> labelPanels = new ArrayList<>();
labelPanels.add(new NewNetworkLabelPanel(newLabelModel, style));
Collections.sort(labels);
for (NetworkLabelModel label : labels) {
if (!label.isAttached()) {
labelPanels.add(new NetworkLabelPanel(label, style));
}
}
labelsList.addAll(labelPanels, !rendered);
}
use of org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkLabelModel in project ovirt-engine by oVirt.
the class HostSetupNetworksModel method createNicToLabelModels.
private Map<String, List<NetworkLabelModel>> createNicToLabelModels(Map<String, Set<LogicalNetworkModel>> nicNameToNetworkModels, List<LogicalNetworkModel> errorLabelNetworks, Map<String, String> labelToDesiredNicName) {
Map<String, List<NetworkLabelModel>> nicToLabelModels = new HashMap<>();
for (NicLabel nicLabel : hostSetupNetworksParametersData.getLabels()) {
String label = nicLabel.getLabel();
String nicName = nicLabel.getNicName();
labelToDesiredNicName.put(label, nicName);
Collection<LogicalNetworkModel> nicNetworks = nicNameToNetworkModels.get(nicName);
NetworkLabelModel labelModel = networkLabelModelByLabel.get(label);
// $NON-NLS-1$
assert labelModel != null : "NicLabel should have a NetworkLabelModel";
markNetworkModelsAsAttachedViaLabel(errorLabelNetworks, nicNetworks, labelModel);
if (nicToLabelModels.get(nicName) == null) {
nicToLabelModels.put(nicName, new ArrayList<NetworkLabelModel>());
}
nicToLabelModels.get(nicName).add(labelModel);
}
return nicToLabelModels;
}
use of org.ovirt.engine.ui.uicommonweb.models.hosts.network.NetworkLabelModel in project ovirt-engine by oVirt.
the class NetworkGroup method createNetworkTable.
private FlexTable createNetworkTable(Iterable<NetworkLabelModel> labels, Iterable<LogicalNetworkModel> networks) {
FlexTable networkTable = new FlexTable();
int i = 0;
Iterator<NetworkLabelModel> labelIterator = labels.iterator();
Iterator<LogicalNetworkModel> networkIterator = networks.iterator();
while (labelIterator.hasNext()) {
networkTable.setWidget(i++, 0, new NetworkLabelPanel(labelIterator.next(), style));
}
while (networkIterator.hasNext()) {
networkTable.setWidget(i++, 0, new InternalNetworkPanel(networkIterator.next(), style));
}
// $NON-NLS-1$
networkTable.setWidth("100%");
return networkTable;
}
Aggregations