Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 8 Next »

Mit einer XdevProgressBar lässt sich der Fortschritt eines laufenden Prozesses visualisieren. Der Fortschritt wird mit Hilfe eines Wertes zwischen 0.0 und 1.0 angegeben. Um den aktuellen Fortschritt eines Prozesses anzeigen zu können, müssen Sie zuvor dessen Gesamtumfang ermitteln. In vielen Fällen ist das Anzeigen eines Fortschritt-Rads ausreichend, das dem Anwender lediglich signalisiert, dass gerade ein Prozess mit unbestimmter Dauer läuft. Diese Variante ist einfacher umzusetzen.

  

  1. Legen Sie eine neue View ProgressView an. Wählen Sie das XdevGridLayout als initiales Layout.
  2. Ändern Sie die Größe der View auf 300 x 200 Pixel. Klicken Sie dazu in der Toolbox bei Width auf px und geben Sie 300 ein, klicken Sie bei Height auf px und geben Sie 200 ein.
  3. Fügen Sie einen XdevProgressBar in die View ein.
  4. Selektieren Sie in den Properties > Indeterminate.
  5. Geben Sie bei Caption > Please, wait! ein.
  6. Rufen Sie die View ProgressView als PopupWindow auf, das automatisch geschlossen wird, sobald der Prozess beendet ist.

 

Wichtige Events:
  • valueChange - Wird ausgelöst, wenn sich der Fortschritt ändert. 
Wichtige Properies:
  • Value - Aktueller Fortschritt, der als Wert zwischen 0,0 und 1,0 angegeben wird.

  • Indeterminate - Anstelle eines Fortschritt-Balkens wird ein ständig laufendes Fortschritts-Rad angezeigt. Der aktuelle Stand ist damit nicht erkennbar.

Examples:
  • Fortschritts-Rad solange Prozess dauert - Ruft durch Button-Klick die View ProgressView als PopupWindow auf und schließt es automatisch sobald der Prozess beendet ist. 

    private void button_buttonClick(Button.ClickEvent event) {
    	Window popup = PopupWindow.For(new ProgressView()).closable(false).draggable(false).resizable(false).modal(true).show();
    
    	UI.getCurrent().push();
    
    	try {
    
    		// Start your process here
    
    	} catch (InterruptedException e) {
    		e.printStackTrace();
    	}
    
    	popup.close();
    }
  • XdevProgressBar dynamisch aktualisieren - Zeigt den aktuellen Fortschritt in der XdevProgressBar an. Der gesamte Prozess muss in einem eigenem Thread laufen.

    private void progressBar_attach(ClientConnector.AttachEvent event) {	
     
            // Find out the lenght of your process in total. The value is 1.0.
     
    		// Starts a new thread
    		Runnable task = ()->{			 
    	
    			// Start your process. Find out the current progress and store it in 'value'. Value must be between 0.1 and 1.0.			
    				
    				// Sets the value of the ProgressBar
    				getUI().access(()->progressBar.setValue(value));			
    			
    		};
    		new Thread(new RunnableAccessWrapper(task)).start();	
    }
  • Zur XdevPanel Javadoc

  • No labels