Minimal ist gut :suspekt:
/**
*
*/
package vwg.vw.common.project.ala.view.fenster.haupt;
import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.ProgressBar;
import vwg.vw.common.project.ala.global.Global;
import vwg.vw.common.project.ala.model.ProjectComposite;
import vwg.vw.common.project.ala.model.database.Aenderer;
/**
* @author d1aboor
*
*/
public class CompositeHauptStatus extends ProjectComposite {
private static Composite compositeStatus;
private static Composite compositeStatusFeld;
private static Composite compositeAenderer;
private static Composite compositeAendererZeit;
private static Composite compositeAendererDatum;
private static Composite compositeProgress;
private static Composite compositeAnzahl;
private static Label labelStatus;
private static Label labelAenderer;
private static Label labelAenderDatum;
private static Label labelAenderZeit;
private static Label labelProgress;
private static Label labelAnzahl;
private static Composite parent;
private static int progressBarPercent;
private static int anzahl;
/**
* constructor
*/
public CompositeHauptStatus(Composite parents, int style, int progressBarPercents) {
super(parent, style);
parent = parents;
progressBarPercent = progressBarPercents;
initialize();
}
public static void initialize() {
createCompositeElements();
}
private static void createCompositeElements() {
compositeStatus = new Composite(parent, SWT.NONE);
GridLayout gridlayout = new GridLayout();
gridlayout.horizontalSpacing = 0;
gridlayout.verticalSpacing = 0;
gridlayout.marginBottom = 0;
gridlayout.marginTop = 0;
gridlayout.marginHeight = 0;
gridlayout.marginLeft = 0;
gridlayout.marginRight = 0;
gridlayout.marginWidth = 0;
gridlayout.numColumns = 6;
compositeStatus.setLayout(gridlayout);
compositeStatusFeld = new Composite(compositeStatus, SWT.BORDER);
compositeStatusFeld.setLayout(new GridLayout());
GridData gridStatus = new GridData();
gridStatus.widthHint = 450;
compositeStatusFeld.setLayoutData(gridStatus);
compositeAenderer = new Composite(compositeStatus, SWT.BORDER);
compositeAenderer.setLayout(new GridLayout());
GridData gridAenderer = new GridData();
gridAenderer.widthHint = 160;
compositeAenderer.setLayoutData(gridAenderer);
compositeAendererDatum = new Composite(compositeStatus, SWT.BORDER);
compositeAendererDatum.setLayout(new GridLayout());
GridData gridDatum = new GridData();
gridDatum.widthHint = 180;
compositeAendererDatum.setLayoutData(gridDatum);
compositeAendererZeit = new Composite(compositeStatus, SWT.BORDER);
compositeAendererZeit.setLayout(new GridLayout());
GridData gridZeit = new GridData();
gridZeit.widthHint = 160;
compositeAendererZeit.setLayoutData(gridZeit);
compositeAnzahl = new Composite(compositeStatus, SWT.BORDER);
compositeAnzahl.setLayout(new GridLayout());
GridData gridAnzahl = new GridData();
gridAnzahl.widthHint = 100;
compositeAnzahl.setLayoutData(gridAnzahl);
compositeProgress = new Composite(compositeStatus, SWT.NONE);
GridLayout gridprogress = new GridLayout();
gridprogress.numColumns = 2;
compositeProgress.setLayout(gridprogress);
GridData gridProgress = new GridData();
gridProgress.widthHint = 220;
compositeProgress.setLayoutData(gridProgress);
createLabelElements();
}
private static void createLabelElements() {
labelStatus = new Label(compositeStatusFeld, SWT.NONE);
labelStatus.setText(" User: " + Global.getBenutzer().getUserid() + " ("
+ Global.getBenutzerRolle()
+ ") @ " + Global.getHauptUmgebung().getName() + " / Applikation: "
+ Global.getApplikation());
labelAenderer = new Label(compositeAenderer, SWT.NONE);
labelAenderer.setText(" Aenderungs-User: ");
labelAenderDatum = new Label(compositeAendererDatum, SWT.NONE);
labelAenderDatum.setText(" Aenderungs-Datum: ");
labelAenderZeit = new Label(compositeAendererZeit, SWT.NONE);
labelAenderZeit.setText(" Aenderungs-Zeit: ");
labelAnzahl = new Label(compositeAnzahl, SWT.NONE);
labelAnzahl.setText(" Anzahl: ");
ProgressBar progressBar = new ProgressBar(compositeProgress,SWT.NONE);
progressBar.setSelection(progressBarPercent);
labelProgress = new Label(compositeProgress, SWT.RIGHT);
labelProgress.setText(progressBarPercent + " %");
}
public static void setAenderer(Aenderer aenderers){
if(aenderers != null){
compositeAenderer.getChildren()[0].dispose();
labelAenderer = new Label(compositeAenderer, SWT.NONE);
labelAenderer.setText(" Aenderungs-User: "
+ aenderers.getAenderername());
compositeAenderer.layout();
compositeAendererDatum.getChildren()[0].dispose();
labelAenderDatum = new Label(compositeAendererDatum, SWT.NONE);
labelAenderDatum.setText(" Aenderungs-Datum: "
+ aenderers.getAenderdatum());
compositeAendererDatum.layout();
compositeAendererZeit.getChildren()[0].dispose();
labelAenderZeit = new Label(compositeAendererZeit, SWT.NONE);
labelAenderZeit.setText(" Aenderungs-Zeit: "
+ aenderers.getAendererzeit());
compositeAendererZeit.layout();
}
}
public static void setProgess(int prozent){
compositeProgress.getChildren()[1].dispose();
compositeProgress.getChildren()[0].dispose();
if(prozent > 100){
prozent = 100;
}
progressBarPercent = prozent;
ProgressBar progressBar = new ProgressBar(compositeProgress,SWT.RIGHT);
progressBar.setSelection(progressBarPercent);
labelProgress = new Label(compositeProgress, SWT.RIGHT);
labelProgress.setText(progressBarPercent + " % ");
compositeProgress.layout();
}
public static void setAnzahl(int anzahls){
compositeAnzahl.getChildren()[0].dispose();
anzahl = anzahls;
labelAnzahl = new Label(compositeAnzahl, SWT.NONE);
labelAnzahl.setText(" Anzahl: " + anzahl);
compositeAnzahl.layout();
}
public static void clearStatus(){
progressBarPercent = 0;
compositeAenderer.getChildren()[0].dispose();
compositeAendererDatum.getChildren()[0].dispose();
compositeAendererZeit.getChildren()[0].dispose();
compositeProgress.getChildren()[1].dispose();
compositeProgress.getChildren()[0].dispose();
compositeAnzahl.getChildren()[0].dispose();
createLabelElements();
compositeAenderer.layout();
compositeAendererDatum.layout();
compositeAendererZeit.layout();
compositeProgress.layout();
compositeAnzahl.layout();
}
}
Das ist meine Statische Klasse.
Ich arbeite garnicht mit Threads, daran kann es zum Glück schonmal nicht liegen.
Ich mache nichts anderes als während einer For Schleife folgenden Befehl ausführen zu wollen.
CompositeHauptStatus.setProgess(i);
Ich hoffe daran kannst du es testen bzw nachvollziehen
Der CompositeHauptStatus ist in einem Fenster unten dazu geaddet und dadrüber ist eine Tabelle zu sehen. Die Tabelle und die Statuszeile liegen auf eine Sashform.
Hatte auch schonmal probiert nicht nur das Composite nur zeichnen zu lassen mit .Layout sondern auch die Shell was aber leider nichts brachte