/**
* Copyright 2008-2016 Qualogy Solutions B.V.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.qualogy.qafe.mgwt.client.activities;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.googlecode.mgwt.dom.client.event.tap.TapEvent;
import com.googlecode.mgwt.dom.client.event.tap.TapHandler;
import com.googlecode.mgwt.ui.client.widget.celllist.CellSelectedEvent;
import com.googlecode.mgwt.ui.client.widget.celllist.CellSelectedHandler;
import com.qualogy.qafe.mgwt.client.activities.home.Topic;
import com.qualogy.qafe.mgwt.client.main.ClientFactory;
import com.qualogy.qafe.mgwt.client.main.UIModel;
import com.qualogy.qafe.mgwt.client.places.AbstractPlace;
import com.qualogy.qafe.mgwt.client.places.AppPlace;
import com.qualogy.qafe.mgwt.client.places.AppsPlace;
import com.qualogy.qafe.mgwt.client.places.HomePlace;
import com.qualogy.qafe.mgwt.client.views.AbstractView;
import com.qualogy.qafe.mgwt.client.views.AppsView;
import com.qualogy.qafe.mgwt.client.vo.ui.UIGVO;
public class AppsActivity extends AbstractActivity {
private Map<Integer,AbstractPlace> places = new HashMap<Integer,AbstractPlace>();
public AppsActivity(ClientFactory clientFactory, AbstractPlace place) {
super(clientFactory, place);
}
@Override
public AbstractView getView() {
return getClientFactory().getAppsView();
}
@Override
protected void bind(AbstractView view) {
if (view instanceof AppsView) {
AppsView appsView = (AppsView)view;
addHandlerRegistration(appsView.getCellSelectedHandler().addCellSelectedHandler(new CellSelectedHandler() {
@Override
public void onCellSelected(CellSelectedEvent event) {
int index = event.getIndex();
AbstractPlace place = places.get(index);
if (place != null) {
goTo(place);
}
}
}));
addHandlerRegistration(appsView.getBackButton().addTapHandler(new TapHandler() {
@Override
public void onTap(TapEvent event) {
goTo(new HomePlace());
}
}));
}
}
@Override
protected void init(AbstractView view) {
if (view instanceof AppsView) {
AppsView appsView = (AppsView)view;
// TODO make constants
appsView.setTitle("QAFE Apps");
appsView.setBackButtonText("Back");
appsView.setTopics(createTopics());
}
}
private List<Topic> createTopics() {
ArrayList<Topic> topicList = new ArrayList<Topic>();
UIModel uiModel = getClientFactory().getUIModel();
if (uiModel != null) {
UIGVO[] vos = uiModel.getVos();
if (vos != null) {
for (int i=0; i<vos.length; i++) {
UIGVO uiGVO = vos[i];
String appId = uiGVO.getAppId();
String appTitle = uiGVO.getTitle();
places.put(i, new AppPlace(appId));
Topic topic = new Topic(appTitle, 1);
topicList.add(topic);
}
}
}
return topicList;
}
@Override
public AppsPlace getPlace() {
return (AppsPlace)super.getPlace();
}
}