/*
* GeoMap.java
*
* Created on February 15, 2006, 1:52 PM
*
*/
package ika.geo;
import ika.table.Table;
import ika.table.TableLink;
import java.util.*;
import java.io.*;
/**
* GeoMap extends a GeoSet by adding support for attribute Tables. This is a
* central store for all tables accessible to a tree of GeoObjects.
* @author Bernhard Jenny, Institute of Cartography, ETH Zurich.
*/
public class GeoMap extends GeoSet implements Serializable {
private static final long serialVersionUID = -896934826985392824L;
private ArrayList tables = new ArrayList();
private ArrayList tableLinks = new ArrayList();
/**
* Creates a new instance of GeoMap
*/
public GeoMap(){
}
public void tableAdd(Table table) {
if (table == null)
return;
this.tables.add(0, table);
}
public ArrayList tableGetAll() {
return this.tables;
}
public void tableRemove(Table table, boolean removeDependentItems) {
// remove charts that depend on this table
/* remains to be done !!! ???
if (removeDependentItems){
for (int i = this.charts.size() - 1; i >= 0; i--) {
Chart chart = (Chart)this.charts.get(i);
if (chart.get() == geoSet)
this.chartRemove(chart, removeDependentItems);
}
}
*/
// remove the table
this.tables.remove(table);
}
public void tableLinkAdd(TableLink tableLink) {
if (tableLink == null)
return;
this.tableLinks.add(0, tableLink);
}
public ArrayList tableLinkGetAll() {
return this.tableLinks;
}
public int tableLinkGetNumber() {
return this.tableLinks.size();
}
public TableLink tableLinkGet (int index) {
return (TableLink)this.tableLinks.get(index);
}
public void tableRemove(TableLink tableLink, boolean removeDependentItems) {
// remove charts that depend on this table
/* remains to be done !!! ???
if (removeDependentItems){
for (int i = this.charts.size() - 1; i >= 0; i--) {
Chart chart = (Chart)this.charts.get(i);
if (chart.get() == geoSet)
this.chartRemove(chart, removeDependentItems);
}
}
*/
// remove the table
this.tableLinks.remove(tableLink);
}
}