📄 progressbarsample.java
字号:
/*
* GWT-Ext Widget Library
* Copyright 2007 - 2008, GWT-Ext LLC., and individual contributors as indicated
* by the @authors tag. See the copyright.txt in the distribution for a
* full listing of individual contributors.
*
* This is free software; you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 3 of
* the License, or (at your option) any later version.
*
* This software is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this software; if not, write to the Free
* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
*/
package com.gwtext.sample.showcase2.client.misc;
import com.google.gwt.user.client.Timer;
import com.gwtext.client.core.EventObject;
import com.gwtext.client.core.Ext;
import com.gwtext.client.core.Function;
import com.gwtext.client.util.Format;
import com.gwtext.client.widgets.*;
import com.gwtext.client.widgets.event.ButtonListenerAdapter;
import com.gwtext.client.widgets.layout.VerticalLayout;
import com.gwtext.sample.showcase2.client.ShowcasePanel;
public class ProgressBarSample extends ShowcasePanel {
public String getSourceUrl() {
return "source/misc/ProgressBarSample.java.html";
}
public String getCssUrl() {
return "source/misc/ProgressBarSample.css.html";
}
public Panel getViewPanel() {
if (panel == null) {
panel = new Panel();
panel.setLayout(new VerticalLayout(15));
final ProgressBar pbar1 = new ProgressBar();
pbar1.setWidth(300);
pbar1.setText("Ready");
Panel panel1 = new Panel();
panel1.setTitle("Basic Progress Bar");
panel1.setFrame(true);
panel1.setWidth(400);
panel1.setHeight(150);
panel1.setPaddings(20);
Button button1 = new Button("Start", new ButtonListenerAdapter() {
public void onClick(final Button button, EventObject e) {
button.disable();
pbar1.reset();
for (int i = 1; i < 12; i++) {
final int j = i;
Timer timer = new Timer() {
public void run() {
if (j == 11) {
pbar1.setText("Done.");
button.enable();
} else {
pbar1.setText(Format.format("Loading item {0} of 10...", j + ""));
pbar1.setValue(pbar1.getValue() + 0.1f);
}
}
};
timer.schedule(i * 1000);
}
}
});
panel1.add(new HTMLPanel("A Basic ProgressBar with build-in progress text.", 0, 0, 0, 10));
panel1.add(pbar1);
panel1.addButton(button1);
panel.add(panel1);
Panel panel2 = new Panel();
panel2.setTitle("Left Align Text");
panel2.setFrame(true);
panel2.setWidth(400);
panel2.setHeight(150);
panel2.setPaddings(20);
final ProgressBar pbar2 = new ProgressBar();
pbar2.setCls("left-align");
pbar2.setWidth(300);
pbar2.setText("Ready");
Button button2 = new Button("Start", new ButtonListenerAdapter() {
public void onClick(final Button button, EventObject e) {
button.disable();
pbar2.reset();
for (int i = 1; i < 12; i++) {
final int j = i;
Timer timer = new Timer() {
public void run() {
if (j > 11) {
pbar2.setText("Done.");
button.enable();
} else {
pbar2.setText(Format.format("Loading item {0} of 10...", j + ""));
pbar2.setValue(pbar2.getValue() + 0.1f);
}
}
};
timer.schedule(i * 1000);
}
}
});
panel2.add(new HTMLPanel("A ProgressBar with label left aligned via CSS.", 0, 0, 0, 10));
panel2.add(pbar2);
panel2.addButton(button2);
panel.add(panel2);
Panel panel3 = new Panel();
panel3.setTitle("Waiting Bar");
panel3.setFrame(true);
panel3.setWidth(400);
panel3.setHeight(150);
panel3.setPaddings(20);
final ProgressBar pbar3 = new ProgressBar();
pbar3.setWidth(300);
Button button3 = new Button("Start", new ButtonListenerAdapter() {
public void onClick(final Button button, EventObject e) {
button.disable();
pbar3.reset();
pbar3.wait(new WaitConfig() {
{
setInterval(200);
setDuration(8000);
setIncrement(15);
setCallback(new Function() {
public void execute() {
button.enable();
}
});
}
});
}
});
panel3.add(new HTMLPanel("Wait for a long operation to complete (example will stop after 8 secs) with progress update every 200ms and in increments of 15 segments.", 0, 0, 0, 10));
panel3.add(pbar3);
panel3.addButton(button3);
panel.add(panel3);
Panel panel4 = new Panel();
panel4.setTitle("Custom Styles");
panel4.setFrame(true);
panel4.setWidth(400);
panel4.setHeight(170);
panel4.setPaddings(20);
final ProgressBar pbar4 = new ProgressBar();
pbar4.setText("Waiting on you...");
pbar4.setTextEl("p4text");
pbar4.setCls("custom");
pbar4.setWidth(300);
Button button4 = new Button("Start", new ButtonListenerAdapter() {
public void onClick(final Button button, EventObject e) {
button.disable();
pbar4.reset();
for (int i = 1; i < 12; i++) {
final int j = i;
Timer timer = new Timer() {
public void run() {
if (j == 11) {
pbar4.setText("All Done!");
button.enable();
} else {
float value = pbar4.getValue() + 0.1f;
pbar4.setText(Format.format("{0}% completed... ", (int) (value * 100) + ""));
pbar4.setValue(value);
}
}
};
timer.schedule(i * 1000);
}
}
});
panel4.add(new HTMLPanel("Rendered like Windows XP with custom progress text element.", 0, 0, 0, 10));
panel4.add(pbar4);
HTMLPanel status = new HTMLPanel("<div class=\"status\"><b>Status:</b> <span id=\"p4text\"></span></div>", 10, 0, 0, 0);
//the textEl must be already present in the DOM prior to ProgressBar creation
status.render(Ext.getBody().getDOM());
panel4.add(status);
panel4.addButton(button4);
panel.add(panel4);
}
return panel;
}
public String getIntro() {
return "This example demonstrates various ways a ProgressBar can be configured.";
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -