package org.greenstone.atlas.client; import java.util.ArrayList; import java.util.HashMap; import com.google.gwt.user.client.ui.HTML; public class StatusBar { private HashMap _ids = new HashMap(); private HTML _statusBarDiv = new HTML(); private ArrayList _statusUpdates = new ArrayList(); private GS3MapLibrary _atlasInstance = null; public StatusBar(GS3MapLibrary atlasInstance) { _statusBarDiv.setStyleName("statusBar"); _atlasInstance = atlasInstance; } public void addUpdate(String update, String id) { GS3MapLibrary.logToConsole("Got update -> " + update + " - " + id); if(_ids.get(id) != null) { return; } for(int j = 0; j < _statusUpdates.size(); j++) { if(_statusUpdates.get(j) == null) { _statusUpdates.add(j, update); _ids.put(id, j); updateStatusBar(); return; } } _ids.put(id, _statusUpdates.size()); _statusUpdates.add(update); updateStatusBar(); _atlasInstance.resizeElements(); } public boolean removeUpdate(String updateId) { Integer index = _ids.get(updateId); if(index == null) { return false; } _ids.remove(updateId); _statusUpdates.set(index, null); updateStatusBar(); _atlasInstance.resizeElements(); return true; } private void updateStatusBar() { String status = ""; boolean noStatusUpdate = true; for(int j = 0; j < _statusUpdates.size(); j++) { if(_statusUpdates.get(j) != null) { if(noStatusUpdate) { noStatusUpdate = false; } else { status += "
"; } status += _statusUpdates.get(j); } } if(!status.equals("")) { GS3MapLibrary.logToConsole("Adding progress image"); status += "
"; } _statusBarDiv.setHTML(status); } public HTML getStatusBarDiv() { return _statusBarDiv; } }