
it.tidalwave.bluebill.mobile.taxonomy.ui.DefaultTaxonomyPickerViewController Maven / Gradle / Ivy
/***********************************************************************************************************************
*
* blueBill Mobile - Android - open source birding
* Copyright (C) 2009-2011 by Tidalwave s.a.s. (http://www.tidalwave.it)
*
***********************************************************************************************************************
*
* 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.
*
***********************************************************************************************************************
*
* WWW: http://bluebill.tidalwave.it/mobile
* SCM: https://java.net/hg/bluebill-mobile~android-src
*
**********************************************************************************************************************/
package it.tidalwave.bluebill.mobile.taxonomy.ui;
import javax.annotation.Nonnull;
import java.util.ArrayList;
import java.util.List;
import it.tidalwave.util.ui.UserNotificationWithFeedback.Feedback;
import it.tidalwave.netbeans.util.Locator;
import it.tidalwave.observation.Observation;
import it.tidalwave.observation.ObservationManager;
import it.tidalwave.observation.ObservationSet;
import it.tidalwave.observation.bluebill.ObservationClipboard;
import it.tidalwave.bluebill.mobile.taxonomy.TaxonomyDescription;
import static it.tidalwave.util.ui.UserNotificationWithFeedback.notificationWithFeedback;
/***********************************************************************************************************************
*
* @stereotype Controller
*
* @author Fabrizio Giudici
* @version $Id$
*
**********************************************************************************************************************/
public class DefaultTaxonomyPickerViewController implements TaxonomyPickerViewController
{
private static final Class _ = DefaultTaxonomyPickerViewController.class;
@Nonnull
protected final TaxonomyPickerView view;
@Nonnull
private final ObservationManager observationManager = Locator.find(ObservationManager.class);
@Nonnull
private final ObservationClipboard observationClipboard = Locator.find(ObservationClipboard.class);
protected final List taxonomies = new ArrayList();
/*******************************************************************************************************************
*
*
******************************************************************************************************************/
public DefaultTaxonomyPickerViewController (final @Nonnull TaxonomyPickerView view)
{
this.view = view;
// FIXME
taxonomies.add(new TaxonomyDescription("AOU7th",
"The American Ornithologists' Union 7th Edition",
"North America"));
taxonomies.add(new TaxonomyDescription("EBNItalia2003",
"EBN Italia 2003",
"Western Palearctic Ecozone (Europe, Western Asia, North Africa)"));
taxonomies.add(new TaxonomyDescription("RobertsVII",
"Roberts VII Edition",
"Southern Africa"));
}
/*******************************************************************************************************************
*
* {@inheritDoc}
*
******************************************************************************************************************/
public void checkWhetherTheTaxonomyCanBeChanged()
{
final ObservationSet observationSet = observationManager.findOrCreateObservationSetById(null);
final boolean observationsInserted = observationSet.find(Observation.class).count() > 0;
final boolean insertInProgress = observationClipboard.getBuilder().getItemCount() > 0;
if (observationsInserted || insertInProgress)
{
view.notifyThatTheTaxonomyCannotBeChanged(notificationWithFeedback().withCaption(_, "cantChangeChecklist_title")
.withText(_, "cantChangeChecklist_message")
.withFeedback(new Feedback()
{
@Override
public void onConfirm()
{
view.dismiss();
}
}));
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy