package org.ovirt.engine.ui.uicommonweb.models.providers; import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.comparators.NameableComparator; import org.ovirt.engine.core.common.businessentities.network.NetworkView; import org.ovirt.engine.core.common.queries.IdQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.ui.uicommonweb.UICommand; import org.ovirt.engine.ui.uicommonweb.help.HelpTag; import org.ovirt.engine.ui.uicommonweb.models.CommonModel; import org.ovirt.engine.ui.uicommonweb.models.SearchableListModel; import org.ovirt.engine.ui.uicompat.ConstantsManager; import com.google.inject.Inject; public class ProviderNetworkListModel extends SearchableListModel<Provider, NetworkView> { private static final String CMD_DISCOVER = "Discover"; //$NON-NLS-1$ private UICommand discoverCommand; private final com.google.inject.Provider<CommonModel> commonModelProvider; @Inject public ProviderNetworkListModel(final com.google.inject.Provider<CommonModel> commonModelProvider) { this.commonModelProvider = commonModelProvider; setTitle(ConstantsManager.getInstance().getConstants().providerNetworksTitle()); setHelpTag(HelpTag.networks); setHashName("networks"); //$NON-NLS-1$ setDiscoverCommand(new UICommand(CMD_DISCOVER, this)); setComparator(new NameableComparator()); } public UICommand getDiscoverCommand() { return discoverCommand; } private void setDiscoverCommand(UICommand value) { discoverCommand = value; } @Override protected String getListName() { return "ProviderNetworkListModel"; //$NON-NLS-1$ } @Override protected void onEntityChanged() { super.onEntityChanged(); if (getEntity() != null) { getSearchCommand().execute(); } } @Override protected void syncSearch() { Provider provider = getEntity(); if (provider == null) { return; } super.syncSearch(VdcQueryType.GetAllNetworksForProvider, new IdQueryParameters(provider.getId())); } private void discover() { if (getWindow() != null) { return; } DiscoverNetworksModel discoverModel = new DiscoverNetworksModel(this, getEntity(), commonModelProvider); setWindow(discoverModel); discoverModel.discoverNetworks(); } @Override public void executeCommand(UICommand command) { super.executeCommand(command); if (command == getDiscoverCommand()) { discover(); } } }