Service darstellen

Status
Nicht offen für weitere Antworten.
G

Gast2

Gast
Hallo zusammen,

www.eclipse.org/articles/Article-Concurrency/jobs-api.html
hieraus hab ich mein code bsp. aufgebaut

Code:
  Job job = new Job("Use initiated job") {
        protected IStatus run(IProgressMonitor monitor) {
           //monitor.beginTask("Long Running Job",100);
           for(int i = 0;i< 10;i++) {
             try
            {
              Thread.sleep(1000l);
              //new SubProgressMonitor(monitor, 10);
              System.out.println("work"+i*10);
            }
            catch (InterruptedException e)
            {
              e.printStackTrace();
            }
            finally{
              monitor.done();
            }
           if (monitor.isCanceled()) return Status.CANCEL_STATUS;
          }
           return Status.OK_STATUS;

     }
        }
     };
  job.setUser(true);
  job.schedule();

die Konsolenausgabe bekomme ich aber ich bekomme nichts angezeigt(progressbar) was muss ich hierfür noch tun, was habe ich vergessen??
thx...
 
G

Gast2

Gast
hatte ich drin siehst du oben auskommentiert...
wenn ich das einkommentiere macht es keine änderung...
 
G

Gast2

Gast
ok alles klar versuch ich mal... stand in dem link nicht drin....
 

Wildcard

Top Contributor
Vielleicht hat es aber schonmal funktioniert und du hast die always run in background checkbox aktiviert.
 
G

Gast2

Gast
ja muss ich aber dann nicht wie in eclipse den prozess irgendwo unten in so einer progressarea(gelb) angezeigt bekommen??? Aber ich hab keine checkbox angeklickt bin ich mir sicher...

sowas mein ich...

progressview.gif
 

Wildcard

Top Contributor
Bei einem user Task sollte eigentlich ein Dialog hochkommen. Wird der Job denn ausgeführt?
 
G

Gast2

Gast
ja ich seh auf der konsole die ausgabe

Code:
System.out.println("work"+i*10);

aber wie gesagt ich hab das worked(int) noch nicht eingebaut muss ich erst noch versuchen...
 
G

Gast2

Gast
Code:
    Job job = new Job("Use initiated job") 
    {
        protected IStatus run(IProgressMonitor monitor) 
        {
           monitor.beginTask("Use initiated job",100);
           for(int i = 0;i< 10;i++) {
             try
            {
              Thread.sleep(1000l);
              monitor.worked(i*10);
              //new SubP.ogressMonitor(monitor, 10);
              System.out.println("work"+i*10);
            }
            catch (InterruptedException e)
            {
              e.printStackTrace();
            }
            finally{
              monitor.done();
            }
           if (monitor.isCanceled()) return Status.CANCEL_STATUS;
          }
           return Status.OK_STATUS;

        }
  };
  job.setUser(true);
  job.schedule();
  
  job.addJobChangeListener(new JobChangeAdapter() {
      public void done(IJobChangeEvent event) {
      if (event.getResult().isOK())
         System.out.println("Job completed successfully");
         else
         System.out.println("Job did not complete successfully");
      }
   });

Konsolen Ausgabe
Code:
work0
work10
work20
work30
work40
work50
work60
work70
work80
work90

aber ich seh nichts...=(
 
G

Gast2

Gast
nee ich hab keine progress view muss ich die speziell noch irgendwie anlegen????
 
G

Gast2

Gast
Show View -> Progress. Wenn dieser Eintrag nicht existiert, fehlt dir das PlugIn.

versthe nicht was du meinst??? wo soll ich show view machen??? in meinem eclipse????
also in meinem eclipse show view progress hab ich es...


habe das jetzt mal eingefügt
Code:
       <view
            name="Progress View"
            icon="icons/progress.png"
            category="org.eclipse.ui"
            class="org.eclipse.ui.ExtensionFactory:progressView"
            id="org.eclipse.ui.views.ProgressView">
       </view>

Code:
  try {
	PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView(ID_PROGRESSVIEW);
} catch (PartInitException e1) {
	// TODO Auto-generated catch block
	e1.printStackTrace();
}

und danach job.schedule aber leider wird immer noch nichts angezeigt aber job läuft...

EDIT: hast du nicht ein kleines bsp wo bei dir läuft???
 
G

Gast2

Gast
Code:
configurer.setShowProgressIndicator(true);

okay wenn ich das hier mache bekomm ich den dialog allerdings ohne progressbar ??? was muss ich hierfür noch einstellen??

thx
 
G

Gast2

Gast
ich komme meinem ziel imemr näher.... hab jetzt alles ein bischen umgestellt und jetzt wird auch meine progressbar angezeigt... doch leider ist diese wenn i=5 auf 100% warum das????
Code:
        Job job = new Job("Use initiated job")
        {
            protected IStatus run(final IProgressMonitor monitor)
            {
               mMonitor = monitor;
               try
               {
               monitor.beginTask("Use initiated job",10);
               for(int i = 0;i< 10;i++) {
            	  if (monitor.isCanceled()) return Status.CANCEL_STATUS;
				  
                  Thread.sleep(1000l);
                  monitor.worked(i);
                  System.out.println("work"+i);
                    
                }
               }
                catch (InterruptedException e)
                {
                  e.printStackTrace();
                }
                finally{
                  monitor.done();
                }
                    
               return Status.OK_STATUS;

            }
      };
 
G

Gast2

Gast
ah jetzt hab ich es verstanden das worked gibt an um wieviel ich es erhöhen muss d.h. in eienr schleife immer um 1 nicht um i =)
 
G

Gast2

Gast
ok nochmal ne frage
ich hab jetzt links unten schön mein job angezeigt wenn man da drauf klickt bekommt man den job in einer view angezeigt... kann ich irgendwie bestimmen wo die view angzeigt wird so ist mein aufbau gerade... und ich möchte gerne dass der job nicht zu anderen views hinzukommt sondern drunter einen eigene platz bekomme.

--------------------------
|---Editor------|Views-|
--------------------------


meine vorstellung :

--------------------------
|---Editor-----|-Views-|
--------------------------
|---jobs-----------------|
---------------------------


aber ich möchte den platz erst belegen wenn es jobs gibt d.h. nicht von vorne herein ein leere page anzeigen. Ist sowas möglich???

EDIT

Code:
  private static final String ID_PROGRESSVIEW =
    "org.eclipse.ui.views.ProgressView";

  public void createInitialLayout(IPageLayout layout)
  {
    final IPlaceholderFolderLayout placeholderFolderLayout =
      layout.createPlaceholderFolder(ID_PROGRESSVIEW, IPageLayout.BOTTOM, 0.08f,
        IPageLayout.ID_EDITOR_AREA);
    placeholderFolderLayout.addPlaceholder(ID_PROGRESSVIEW);

also soweit hab ich es, aber die progress view nimmt unten nicht den ganzen platz ein(vertikal)

sieht quasi so aus...
--------------------------
|---Editor-----|-Views-|
---------------|---------|
|---jobs-------|---------|
---------------------------
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben