// **********************************************************************
//
// <copyright>
//
// BBN Technologies
// 10 Moulton Street
// Cambridge, MA 02138
// (617) 873-8000
//
// Copyright (C) BBNT Solutions LLC. All rights reserved.
//
// </copyright>
// **********************************************************************
//
// $Source: /cvs/distapps/openmap/src/openmap/com/bbn/openmap/layer/vpf/VPFWarehouse.java,v $
// $RCSfile: VPFWarehouse.java,v $
// $Revision: 1.3 $
// $Date: 2004/10/14 18:06:10 $
// $Author: dietrick $
//
// **********************************************************************
package com.bbn.openmap.layer.vpf;
import java.awt.Component;
import java.util.List;
/**
* Define an interface for a Graphic Factory for graphics read from
* VPF.
*/
public interface VPFWarehouse {
/**
* Return true if we may draw some edge features.
*/
public boolean drawEdgeFeatures();
/**
* Return true if we may draw some text features.
*/
public boolean drawTextFeatures();
/**
* Return true if we may draw some area features.
*/
public boolean drawAreaFeatures();
/**
* To let the warehouse know that a new CoverageAttributeTable
* will be using the warehouse. Some warehouses need to reset
* some tables for this situation.
*/
public void resetForCAT();
/**
* Get the GUI to control different aspects of the warehouse.
*
* @param lst LibrarySelectionTable to use to get information
* about the data, if needed.
*/
public Component getGUI(LibrarySelectionTable lst);
/**
* Return true if we may draw some entity node(point) features.
*/
public boolean drawEPointFeatures();
/**
* Return true if we may draw some connected node(point) features.
*/
public boolean drawCPointFeatures();
/**
* Get a List of Strings listing all the feature types wanted.
* Returned with the area features first, then text features, then
* line features, then point features.
*/
public List<String> getFeatures();
/**
* Get a library name to limit selections from. Used by the
* LibrarySelectionTable to find out if selection from database
* should be limitied to tiles or feature from certain libraries.
* Specified here instead of the LibrarySelectionTable in case the
* LST is shared among layers, since the warehouse is specific to
* a particular layer.
*/
public List<String> getUseLibraries();
/**
* Set a library name to limit selections from. Used by the
* LibrarySelectionTable to find out if selection from database
* should be limitied to tiles or feature from certain libraries.
* Specified here instead of the LibrarySelectionTable in case the
* LST is shared among layers, since the warehouse is specific to
* a particular layer. If null the warehouse should use all
* libraries available to it to gather features.
*/
public void setUseLibraries(List<String> lib);
/**
* Utility method to check if the specified library name has been set by the
* configuration as one to use.
*
* @param libName the library name to test
* @return true if the useLibrary list has not been set, is empty, or if the
* provided name matches an entry on it.
*/
public boolean checkLibraryForUsage(String libName);
}