package org.ovirt.engine.ui.userportal.client.views.basic;
import org.ovirt.engine.core.compat.Event;
import org.ovirt.engine.core.compat.EventArgs;
import org.ovirt.engine.core.compat.IEventListener;
import org.ovirt.engine.ui.uicommon.models.userportal.UserPortalBasicListModel;
import org.ovirt.engine.ui.uicommon.models.userportal.UserPortalItemModel;
import org.ovirt.engine.ui.userportal.client.Masthead;
import org.ovirt.engine.ui.userportal.client.UserPortal;
import org.ovirt.engine.ui.userportal.client.common.UserPortalMode;
import org.ovirt.engine.ui.userportal.client.components.RefreshPanel;
import org.ovirt.engine.ui.userportal.client.events.SelectedItemChangedEventArgs;
import org.ovirt.engine.ui.userportal.client.views.basic.components.VmTvLayout;
import org.ovirt.engine.ui.userportal.client.components.GridRefreshManager;
import com.smartgwt.client.widgets.layout.HLayout;
import com.smartgwt.client.widgets.layout.LayoutSpacer;
import com.smartgwt.client.widgets.layout.VLayout;
import com.smartgwt.client.widgets.toolbar.ToolStrip;
public class UserPortalBasicView extends VLayout {
VmTileGrid vmTileGrid;
VmBasicInfoLayout vmBasicInfoLayout;
UserPortalBasicListModel upblm;
public UserPortalBasicView() {
setWidth100();
setHeight100();
setShowEdges(true);
setEdgeImage("edges/lightblueframe.png");
setEdgeSize(4);
upblm = new UserPortalBasicListModel();
vmTileGrid = new VmTileGrid();
vmTileGrid.setModel(upblm);
vmBasicInfoLayout = new VmBasicInfoLayout(upblm);
vmTileGrid.getSelectionChangedEvent().addListener(new IEventListener() {
@Override
public void eventRaised(Event ev, Object sender, EventArgs args) {
SelectedItemChangedEventArgs upArgs = (SelectedItemChangedEventArgs)args;
vmBasicInfoLayout.updateValues((UserPortalItemModel)upArgs.selectedItem, (VmTvLayout)vmTileGrid.getSelectedItemLayout());
}
});
vmTileGrid.getItemsChangedEvent().addListener(new IEventListener() {
@Override
public void eventRaised(Event ev, Object sender, EventArgs args) {
UserPortalItemModel selectedItem = (UserPortalItemModel)upblm.getSelectedItem();
if (selectedItem == null)
return;
vmBasicInfoLayout.updateValues(selectedItem, (VmTvLayout)vmTileGrid.getSelectedItemLayout());
}
});
vmTileGrid.getItemsChangedEvent().addListener(new IEventListener() {
@Override
public void eventRaised(Event ev, Object sender, EventArgs args) {
if (Masthead.getUserPortalMode() == UserPortalMode.BASIC &&
UserPortal.getSessionConnectAutomatically() && upblm.getCanConnectAutomatically())
{
UserPortalItemModel userPortalItemModel = upblm.GetStatusUpVms(upblm.getItems()).get(0);
if (userPortalItemModel != null)
{
userPortalItemModel.getDefaultConsole().getConnectCommand().Execute();
UserPortal.setSessionConnectAutomatically(false);
}
}
vmTileGrid.getItemsChangedEvent().removeListener(this);
}
});
vmTileGrid.getLayout().setWidth("60%");
vmBasicInfoLayout.setWidth("40%");
HLayout viewWrapper = new HLayout();
viewWrapper.setStyleName("basicViewLayout");
viewWrapper.addMember(vmTileGrid.getLayout());
viewWrapper.addMember(vmBasicInfoLayout);
addMember(getToolbar());
addMember(viewWrapper);
}
public ToolStrip getToolbar() {
ToolStrip toolBar = new ToolStrip();
toolBar.setBackgroundColor("#FFFFFF");
toolBar.setWidth100();
toolBar.setHeight(28);
toolBar.setMembers(new LayoutSpacer(), new RefreshPanel(vmTileGrid));
return toolBar;
}
@Override
public void show() {
super.show();
GridRefreshManager.getInstance().subscribe(vmTileGrid);
}
@Override
public void hide() {
super.hide();
GridRefreshManager.getInstance().unsubscribe(vmTileGrid);
}
}