Updated OperationMonitor

git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/portlets/user/tabular-data-monitor-widget@99352 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
Giancarlo Panichi 2014-08-29 17:31:26 +00:00 committed by Giancarlo Panichi
parent 8a8d6145bc
commit ceaa84ec3b
6 changed files with 126 additions and 75 deletions

View File

@ -289,5 +289,4 @@
</dependency> </dependency>
</dependencies> </dependencies>
</dependencyManagement> </dependencyManagement>
<packaging>war</packaging>
</project> </project>

View File

@ -6,28 +6,23 @@ import org.gcube.portlets.user.td.gwtservice.shared.exception.TDGWTSessionExpire
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor; import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitor;
import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession; import org.gcube.portlets.user.td.gwtservice.shared.monitor.OperationMonitorSession;
import org.gcube.portlets.user.td.monitorwidget.client.details.MonitorDetailPanel; import org.gcube.portlets.user.td.monitorwidget.client.details.MonitorDetailPanel;
import org.gcube.portlets.user.td.monitorwidget.client.resources.ResourceBundle;
import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent; import org.gcube.portlets.user.td.widgetcommonevent.client.event.SessionExpiredEvent;
import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType; import org.gcube.portlets.user.td.widgetcommonevent.client.type.SessionExpiredType;
import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId; import org.gcube.portlets.user.td.widgetcommonevent.shared.TRId;
import com.allen_sauer.gwt.log.client.Log; import com.allen_sauer.gwt.log.client.Log;
import com.google.web.bindery.event.shared.EventBus; import com.google.web.bindery.event.shared.EventBus;
import com.sencha.gxt.cell.core.client.ButtonCell.IconAlign;
import com.sencha.gxt.core.client.dom.ScrollSupport.ScrollMode;
import com.sencha.gxt.core.client.util.Margins; import com.sencha.gxt.core.client.util.Margins;
import com.sencha.gxt.widget.core.client.FramedPanel; import com.sencha.gxt.widget.core.client.FramedPanel;
import com.sencha.gxt.widget.core.client.ProgressBar; import com.sencha.gxt.widget.core.client.ProgressBar;
import com.sencha.gxt.widget.core.client.Window; import com.sencha.gxt.widget.core.client.Window;
import com.sencha.gxt.widget.core.client.button.TextButton; import com.sencha.gxt.widget.core.client.button.TextButton;
import com.sencha.gxt.widget.core.client.button.ToolButton; import com.sencha.gxt.widget.core.client.button.ToolButton;
import com.sencha.gxt.widget.core.client.container.FlowLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer;
import com.sencha.gxt.widget.core.client.container.MarginData;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData; import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutData;
import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack; import com.sencha.gxt.widget.core.client.container.BoxLayoutContainer.BoxLayoutPack;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer;
import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign; import com.sencha.gxt.widget.core.client.container.HBoxLayoutContainer.HBoxLayoutAlign;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer;
import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData; import com.sencha.gxt.widget.core.client.container.VerticalLayoutContainer.VerticalLayoutData;
import com.sencha.gxt.widget.core.client.event.SelectEvent; import com.sencha.gxt.widget.core.client.event.SelectEvent;
import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler; import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
@ -42,10 +37,12 @@ import com.sencha.gxt.widget.core.client.event.SelectEvent.SelectHandler;
public class MonitorDialog extends Window implements MonitorUpdaterListener { public class MonitorDialog extends Window implements MonitorUpdaterListener {
public static final int STATUS_POLLING_DELAY = 1000; public static final int STATUS_POLLING_DELAY = 1000;
private static final String WIDTH = "520px"; private static final String WIDTH = "640px";
private static final String HEIGHT = "378px"; private static final String HEIGHT = "378px";
private static final String PANELWIDTH = "500px"; private static final String PANELWIDTH = "620px";
private static final String PANELHEIGHT = "308px"; private static final String PANELHEIGHT = "308px";
private static final String PROGRESSWIDTH = "618px";
private EventBus eventBus; private EventBus eventBus;
private String taskId; private String taskId;
private MonitorUpdater progressUpdater; private MonitorUpdater progressUpdater;
@ -81,7 +78,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
setBodyBorder(false); setBodyBorder(false);
setResizable(true); setResizable(true);
setModal(true); setModal(true);
setClosable(false); setClosable(true);
setHeadingText("Progress"); setHeadingText("Progress");
} }
@ -99,7 +96,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
ProgressBar progressBar = new ProgressBar(); ProgressBar progressBar = new ProgressBar();
progressBar.setWidth("498px"); progressBar.setWidth(PROGRESSWIDTH);
/*FieldSet detailsSet = new FieldSet(); /*FieldSet detailsSet = new FieldSet();
detailsSet.setHeadingText("Details"); detailsSet.setHeadingText("Details");
@ -138,8 +135,8 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
btnBackground = new TextButton("Background"); btnBackground = new TextButton("Background");
btnBackground.setWidth("70px"); btnBackground.setWidth("70px");
//btnOk.setIcon(ResourceBundle.INSTANCE.ok()); //btnBackground.setIcon(ResourceBundle.INSTANCE.background());
//btnOk.setIconAlign(IconAlign.RIGHT); //btnBackground.setIconAlign(IconAlign.RIGHT);
btnBackground.setTitle("Background"); btnBackground.setTitle("Background");
@ -156,8 +153,8 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
btnAbort = new TextButton("Abort"); btnAbort = new TextButton("Abort");
btnAbort.setWidth("70px"); btnAbort.setWidth("70px");
//btnOk.setIcon(ResourceBundle.INSTANCE.ok()); //btnAbort.setIcon(ResourceBundle.INSTANCE.abort());
//btnOk.setIconAlign(IconAlign.RIGHT); //btnAbort.setIconAlign(IconAlign.RIGHT);
btnAbort.setTitle("Abort"); btnAbort.setTitle("Abort");
@ -195,33 +192,33 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
//panel.addButton(btnOk);
/*
OperationMonitorSession operationMonitorSession = new OperationMonitorSession( OperationMonitorSession operationMonitorSession = new OperationMonitorSession(
taskId); taskId);
progressUpdater = new MonitorUpdater(operationMonitorSession); progressUpdater = new MonitorUpdater(operationMonitorSession);
progressUpdater.addListener(new MonitorBarUpdater(progressBar)); progressUpdater.addListener(new MonitorBarUpdater(progressBar));
progressUpdater.addListener(this); progressUpdater.addListener(this);
progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY);*/ progressUpdater.scheduleRepeating(STATUS_POLLING_DELAY);
show(); show();
//ok.setVisible(false); btnOk.setVisible(false);
} }
protected void startAbort() { protected void startAbort() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
btnOk.setEnabled(false);
btnBackground.setEnabled(false);
btnAbort.setEnabled(false);
close(); close();
} }
protected void startBackground() { protected void startBackground() {
// TODO Auto-generated method stub // TODO Auto-generated method stub
btnOk.setEnabled(false);
btnBackground.setEnabled(false);
btnAbort.setEnabled(false);
close(); close();
} }
public void addProgressDialogListener(MonitorDialogListener listener) { public void addProgressDialogListener(MonitorDialogListener listener) {
@ -256,8 +253,11 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
} }
Log.debug("Operation Complete return: " + trId.toString()); Log.debug("Operation Complete return: " + trId.toString());
this.trId = trId; this.trId = trId;
btnBackground.setVisible(false);
btnAbort.setVisible(false);
forceLayout();
fireOperationComplete(trId); fireOperationComplete(trId);
hide(); close();
} }
@Override @Override
@ -272,7 +272,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
SessionExpiredType.EXPIREDONSERVER)); SessionExpiredType.EXPIREDONSERVER));
} else { } else {
fireOperationFailed(caught,reason,details); fireOperationFailed(caught,reason,details);
hide(); close();
} }
} }
@ -281,7 +281,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
if (trId != null) { if (trId != null) {
fireOperationStopped(trId, reason, details); fireOperationStopped(trId, reason, details);
} }
hide(); close();
} }
@ -296,6 +296,8 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
this.reason = reason; this.reason = reason;
this.details = details; this.details = details;
btnOk.setVisible(true); btnOk.setVisible(true);
btnBackground.setVisible(false);
btnAbort.setVisible(false);
forceLayout(); forceLayout();
} }
@ -321,12 +323,13 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
@Override @Override
public void monitorAborted() { public void monitorAborted() {
fireOperationAborted(); fireOperationAborted();
close();
} }
@Override @Override
public void monitorPutInBackground() { public void monitorPutInBackground() {
fireOperationPutInBackground(); fireOperationPutInBackground();
close();
} }
@ -377,6 +380,7 @@ public class MonitorDialog extends Window implements MonitorUpdaterListener {
super.initTools(); super.initTools();
closeBtn.setVisible(false);
/* /*
closeBtn.addSelectHandler(new SelectHandler() { closeBtn.addSelectHandler(new SelectHandler() {

View File

@ -47,9 +47,16 @@ import com.sencha.gxt.widget.core.client.toolbar.ToolBar;
import com.sencha.gxt.widget.core.client.treegrid.TreeGrid; import com.sencha.gxt.widget.core.client.treegrid.TreeGrid;
public class MonitorDetailPanel extends FramedPanel { public class MonitorDetailPanel extends FramedPanel {
protected static final String WIDTH = "498px"; protected static final String WIDTH = "618px";
protected static final String HEIGHT = "256px"; protected static final String HEIGHT = "256px";
protected static final String GRIDHEIGHT = "212px"; protected static final String GRIDHEIGHT = "332px";
protected static final int CC1WIDTH = 168;
protected static final int CC2WIDTH = 100;
protected static final int CC3WIDTH = 140;
protected static final int CC4WIDTH = 100;
protected MonitorDetailPanel thisPanel; protected MonitorDetailPanel thisPanel;
@ -90,8 +97,6 @@ public class MonitorDetailPanel extends FramedPanel {
} }
protected void init() { protected void init() {
setWidth(WIDTH); setWidth(WIDTH);
setHeight(HEIGHT); setHeight(HEIGHT);
@ -100,18 +105,16 @@ public class MonitorDetailPanel extends FramedPanel {
forceLayoutOnResize = true; forceLayoutOnResize = true;
} }
protected void create() { protected void create() {
con = new VerticalLayoutContainer(); con = new VerticalLayoutContainer();
//con.setScrollMode(ScrollMode.AUTO); // con.setScrollMode(ScrollMode.AUTO);
store = new TreeStore<MonitorBaseDto>(new KeyProvider()); store = new TreeStore<MonitorBaseDto>(new KeyProvider());
addChildrensToStore(); addChildrensToStore();
ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>( ColumnConfig<MonitorBaseDto, String> cc1 = new ColumnConfig<MonitorBaseDto, String>(
new ToStringValueProvider<MonitorBaseDto>("task"), 168, "Task"); new ToStringValueProvider<MonitorBaseDto>("task"), CC1WIDTH, "Task");
cc1.setHeader("Task"); cc1.setHeader("Task");
cc1.setCell(new AbstractCell<String>() { cc1.setCell(new AbstractCell<String>() {
@ -131,25 +134,26 @@ public class MonitorDetailPanel extends FramedPanel {
public String getValue(MonitorBaseDto object) { public String getValue(MonitorBaseDto object) {
String state = null; String state = null;
if (object instanceof MonitorValidationJobSDto) { if (object instanceof MonitorValidationJobSDto) {
state = ((MonitorValidationJobSDto) object).getWorkerState().toString(); state = ((MonitorValidationJobSDto) object)
.getWorkerState().toString();
} }
if (object instanceof MonitorFolderDto) { if (object instanceof MonitorFolderDto) {
state = ((MonitorFolderDto) object).getState(); state = ((MonitorFolderDto) object).getState();
} }
return state; return state;
} }
@Override @Override
public void setValue(MonitorBaseDto object, String value) { public void setValue(MonitorBaseDto object, String value) {
if (object instanceof MonitorValidationJobSDto) { if (object instanceof MonitorValidationJobSDto) {
WorkerState workerState=WorkerStateParser.parse(value); WorkerState workerState = WorkerStateParser.parse(value);
((MonitorValidationJobSDto) object) ((MonitorValidationJobSDto) object)
.setWorkerState(workerState); .setWorkerState(workerState);
} }
if (object instanceof MonitorFolderDto) { if (object instanceof MonitorFolderDto) {
((MonitorFolderDto) object) ((MonitorFolderDto) object).setState(value);
.setState(value);
} }
} }
@ -157,10 +161,44 @@ public class MonitorDetailPanel extends FramedPanel {
public String getPath() { public String getPath() {
return "status"; return "status";
} }
}, 100, "Status"); }, CC2WIDTH, "Status");
cc2.setHeader("Status"); cc2.setHeader("Status");
ColumnConfig<MonitorBaseDto, Double> cc3 = new ColumnConfig<MonitorBaseDto, Double>( ColumnConfig<MonitorBaseDto, String> cc3 = new ColumnConfig<MonitorBaseDto, String>(
new ValueProvider<MonitorBaseDto, String>() {
@Override
public String getValue(MonitorBaseDto object) {
String state = null;
if (object instanceof MonitorValidationJobSDto) {
state = ((MonitorValidationJobSDto) object).getHumanReadableStatus();
}
if (object instanceof MonitorFolderDto) {
state = ((MonitorFolderDto) object).getHumanReadableStatus();
}
return state;
}
@Override
public void setValue(MonitorBaseDto object, String value) {
if (object instanceof MonitorValidationJobSDto) {
((MonitorValidationJobSDto) object)
.setHumanReadableStatus(value);
}
if (object instanceof MonitorFolderDto) {
((MonitorFolderDto) object).setHumanReadableStatus(value);
}
}
@Override
public String getPath() {
return "humanreadablestatus";
}
}, CC3WIDTH, "Human Readble");
cc3.setHeader("Human Readble");
ColumnConfig<MonitorBaseDto, Double> cc4 = new ColumnConfig<MonitorBaseDto, Double>(
new ValueProvider<MonitorBaseDto, Double>() { new ValueProvider<MonitorBaseDto, Double>() {
@Override @Override
@ -185,8 +223,8 @@ public class MonitorDetailPanel extends FramedPanel {
.setProgress(value.floatValue()); .setProgress(value.floatValue());
} }
if (object instanceof MonitorFolderDto) { if (object instanceof MonitorFolderDto) {
((MonitorFolderDto) object) ((MonitorFolderDto) object).setProgress(value
.setProgress(value.floatValue()); .floatValue());
} }
} }
@ -194,8 +232,8 @@ public class MonitorDetailPanel extends FramedPanel {
public String getPath() { public String getPath() {
return "progress"; return "progress";
} }
}, 100, "Progress"); }, CC4WIDTH, "Progress");
cc3.setHeader("Progress"); cc4.setHeader("Progress");
ProgressBarCell progress = new ProgressBarCell() { ProgressBarCell progress = new ProgressBarCell() {
@Override @Override
@ -206,14 +244,13 @@ public class MonitorDetailPanel extends FramedPanel {
progress.setProgressText("{0}% Complete"); progress.setProgressText("{0}% Complete");
progress.setWidth(110); progress.setWidth(110);
cc3.setCell(progress); cc4.setCell(progress);
List<ColumnConfig<MonitorBaseDto, ?>> l = new ArrayList<ColumnConfig<MonitorBaseDto, ?>>(); List<ColumnConfig<MonitorBaseDto, ?>> l = new ArrayList<ColumnConfig<MonitorBaseDto, ?>>();
l.add(cc1); l.add(cc1);
l.add(cc2); l.add(cc2);
l.add(cc3); l.add(cc3);
l.add(cc4);
ColumnModel<MonitorBaseDto> cm = new ColumnModel<MonitorBaseDto>(l); ColumnModel<MonitorBaseDto> cm = new ColumnModel<MonitorBaseDto>(l);
tree = new TreeGrid<MonitorBaseDto>(store, cm, cc1); tree = new TreeGrid<MonitorBaseDto>(store, cm, cc1);
@ -224,7 +261,6 @@ public class MonitorDetailPanel extends FramedPanel {
tree.getView().setAutoExpandColumn(cc1); tree.getView().setAutoExpandColumn(cc1);
tree.setHeight(GRIDHEIGHT); tree.setHeight(GRIDHEIGHT);
IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() { IconProvider<MonitorBaseDto> iconProvider = new IconProvider<MonitorBaseDto>() {
@Override @Override
@ -267,7 +303,7 @@ public class MonitorDetailPanel extends FramedPanel {
} }
}); });
//createContextMenu(); // createContextMenu();
ToolBar toolBar = new ToolBar(); ToolBar toolBar = new ToolBar();
@ -297,7 +333,7 @@ public class MonitorDetailPanel extends FramedPanel {
}); });
toolBar.add(btnCollapseAll); toolBar.add(btnCollapseAll);
con.add(toolBar, new VerticalLayoutData(1, -1,new Margins(0))); con.add(toolBar, new VerticalLayoutData(1, -1, new Margins(0)));
con.add(tree, new VerticalLayoutData(1, -1, new Margins(0))); con.add(tree, new VerticalLayoutData(1, -1, new Margins(0)));
add(con, new MarginData(0)); add(con, new MarginData(0));
@ -317,12 +353,12 @@ public class MonitorDetailPanel extends FramedPanel {
public void update(OperationMonitor operationMonitor) { public void update(OperationMonitor operationMonitor) {
this.operationMonitor = operationMonitor; this.operationMonitor = operationMonitor;
store.clear(); store.clear();
store.commitChanges();
addChildrensToStore(); addChildrensToStore();
store.commitChanges(); store.commitChanges();
tree.expandAll(); tree.expandAll();
forceLayout(); forceLayout();
} }
private void addChildrensToStore() { private void addChildrensToStore() {

View File

@ -15,17 +15,20 @@ public class MonitorFolderDto extends MonitorBaseDto {
protected ArrayList<MonitorBaseDto> childrens; protected ArrayList<MonitorBaseDto> childrens;
protected String type; protected String type;
protected String state; protected String state;
protected String humanReadableStatus;
protected float progress; protected float progress;
public MonitorFolderDto(){ public MonitorFolderDto(){
} }
public MonitorFolderDto(String type,String id,String description, String state, float progress, ArrayList<MonitorBaseDto> childrens){ public MonitorFolderDto(String type,String id,String description, String state,
String humanReadableStatus, float progress, ArrayList<MonitorBaseDto> childrens){
super(id); super(id);
this.type=type; this.type=type;
this.description=description; this.description=description;
this.state=state; this.state=state;
this.humanReadableStatus=humanReadableStatus;
this.progress=progress; this.progress=progress;
this.childrens=childrens; this.childrens=childrens;
@ -74,6 +77,16 @@ public class MonitorFolderDto extends MonitorBaseDto {
this.state = state; this.state = state;
} }
public String getHumanReadableStatus() {
return humanReadableStatus;
}
public void setHumanReadableStatus(String humanReadableStatus) {
this.humanReadableStatus = humanReadableStatus;
}
@Override @Override
public String toString() { public String toString() {
return description; return description;

View File

@ -42,22 +42,22 @@ public class MonitorTreeDataGenerator {
} }
MonitorFolderDto foldJob = new MonitorFolderDto("job", MonitorFolderDto foldJob = new MonitorFolderDto("job",
task.getId() + "-" + job.getId(), job.getDescription(), task.getId() + "-" + job.getId(), job.getDescription(),
job.getWorkerState().toString(), job.getProgress(), job.getWorkerState().toString(), job.getHumaReadableStatus(),job.getProgress(),
validations); validations);
jobs.add(foldJob); jobs.add(foldJob);
} }
MonitorFolderDto foldTask = new MonitorFolderDto("task", MonitorFolderDto foldTask = new MonitorFolderDto("task",
task.getId(), sdf.format(task.getStartTime()), task task.getId(), sdf.format(task.getStartTime()), task
.getState().toString(), task.getProgress(), jobs); .getState().toString(), "",task.getProgress(), jobs);
childrens.add(foldTask); childrens.add(foldTask);
root = new MonitorFolderDto("root", "-1", "root", "root", 0, root = new MonitorFolderDto("root", "-1", "root", "root", "",0,
childrens); childrens);
Log.debug("Generated root"); Log.debug("Generated root");
//printRecorsive(root); //printRecorsive(root);
} else { } else {
root = new MonitorFolderDto("root", "-1", "root", "root", 0, root = new MonitorFolderDto("root", "-1", "root", "root", "", 0,
childrens); childrens);
Log.debug("Generated root without childrens"); Log.debug("Generated root without childrens");
} }
@ -70,7 +70,7 @@ public class MonitorTreeDataGenerator {
protected void printRecorsive(MonitorFolderDto root) { protected void printRecorsive(MonitorFolderDto root) {
for (MonitorBaseDto base : root.getChildrens()) { for (MonitorBaseDto base : root.getChildrens()) {
Log.debug("+++"); Log.debug("+++");
Log.debug("Children:" + base.toString()); Log.debug("Children:[id=" +base.getId() +", toString="+base.toString()+"]");
if (base instanceof MonitorFolderDto) { if (base instanceof MonitorFolderDto) {
printRecorsive((MonitorFolderDto) base); printRecorsive((MonitorFolderDto) base);
} }

View File

@ -23,15 +23,14 @@
<!-- Specify the app entry point class. --> <!-- Specify the app entry point class. -->
<entry-point <!-- <entry-point class='org.gcube.portlets.user.td.monitorwidget.client.MonitorWidgetEntry' /> -->
class='org.gcube.portlets.user.td.monitorwidget.client.MonitorWidgetEntry' />
<!-- Logger --> <!-- Logger
<set-property name="log_DivLogger" value="ENABLED" /> <set-property name="log_DivLogger" value="ENABLED" />
<set-property name="log_ConsoleLogger" value="ENABLED" /> <set-property name="log_ConsoleLogger" value="ENABLED" />
<set-property name="log_FirebugLogger" value="ENABLED" /> <set-property name="log_FirebugLogger" value="ENABLED" />
<set-property name="log_GWTLogger" value="ENABLED" /> <set-property name="log_GWTLogger" value="ENABLED" />
<set-property name="log_SystemLogger" value="ENABLED" /> <set-property name="log_SystemLogger" value="ENABLED" /> -->
<!-- <set-property name="log_DivLogger" value="DISABLED" /> <set-property <!-- <set-property name="log_DivLogger" value="DISABLED" /> <set-property
name="log_ConsoleLogger" value="DISABLED" /> <set-property name="log_FirebugLogger" name="log_ConsoleLogger" value="DISABLED" /> <set-property name="log_FirebugLogger"
value="DISABLED" /> <set-property name="log_GWTLogger" value="DISABLED" /> value="DISABLED" /> <set-property name="log_GWTLogger" value="DISABLED" />