blob: ac387d1852adde52725e06e217093991dc1e3948 [file] [log] [blame]
/*
* Copyright 2011 Google Inc.
*
* 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.google.gwt.sample.mobilewebapp.client.activity;
import com.google.gwt.activity.shared.Activity;
import com.google.gwt.activity.shared.ActivityMapper;
import com.google.gwt.place.shared.Place;
import com.google.gwt.sample.mobilewebapp.client.ClientFactory;
import com.google.gwt.sample.mobilewebapp.client.place.TaskEditPlace;
import com.google.gwt.sample.mobilewebapp.client.place.TaskListPlace;
/**
* A mapping of places to activities used by this application.
*/
public class AppActivityMapper implements ActivityMapper {
private final ClientFactory clientFactory;
public AppActivityMapper(ClientFactory clientFactory) {
this.clientFactory = clientFactory;
}
public Activity getActivity(Place place) {
if (place instanceof TaskListPlace) {
// The list of tasks.
if (!clientFactory.getShell().isTaskListIncluded()) {
// Do not start a task list activity if the task list is always visible.
return new TaskListActivity(clientFactory, ((TaskListPlace) place).isTaskListStale());
}
} else if (place instanceof TaskEditPlace) {
// Editable view of a task.
return new TaskEditActivity((TaskEditPlace) place, clientFactory);
}
return null;
}
}