App

- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
mhr.appcore.AppCore Class Reference

Jádro aplikace, platformě nezávislé, pouze standartní C a Java. More...

## Public Member Functions
| AppCore (PDDisplayer disp)
| Vytvoří instanci aplikace.
void | dispose ()
| provede úklid po instanci
void | setWorkingThreadEH (Thread.UncaughtExceptionHandler handler)
| Nasteví handler neodchycených výjimek pracovního vlákna.
void | setRenderingThreadEH (Thread.UncaughtExceptionHandler handler)
| Nastaví handler neodchycených výjimek renderovacícho vlákna.
PDDisplayer | getDisp ()
| Vrací displayer.
Image | getImg ()
| Vrací obraz.
NBitmap | getWrOutput ()
PDBitmap | getOutput ()
| wrací wrapper okolo výstupního obrazu
void | setTool (Tool t)
| Nastaví daný nástroj jako aktivní
Tool | getTool ()
| Vrací vybraný nástroj.
RenderingTask | getRenderer ()
| vrací renderovací vlákno
void | unsetExceptionFlag ()
| odstraňuje flag pro výjimku (AppNonFatalException)
void | setImagePresentation (PDImageDataPresentation pres)
| Nastaví prezentaci obrazu.
void | setExceptionFeedback (PDExceptionFeedback feedback)
| Nastaví kam se má posílat zpětná vazba o nefatálních výjimkách.
PDExceptionFeedback | getExceptionFeedback ()
| Vrátí objekt, který dostává zpětnou vazbu o nefatálních výjimkách.
void | addCommand (AppCommand command)
| přídá příkaz do fronty pracovního vlákna
void | cropImage (Rect r)
| Provede ořez obrazu na daný obdélník.
void | resizeImage (ResizeImageCommand cmd)
| provede převzorkování obrazu dle daného příkazu
void | openImage (PDBitmap bitmap)
| Vytvoří obraz z dat dané bitmapy.
void | openImage (ImageFile f)
| Otevře obraz popsaný souborem.
void | suspend ()
void | wake ()
void | start ()
| spustí jádro aplikace - pracovní a renderovací vlákno
void | stop ()
| Zastaví jádro aplikace.
void | saveToFile (ImageFile f)
| Uloží do daného souboru aktuální obraz.
String | getDump ()
| debug metoda

## Protected Member Functions
void | finalize () throws Throwable

## Protected Attributes
PDDisplayer | disp = null
| Této třídě se předává výstupní obraz, stará se o výstup na obrazovku.
PDExceptionFeedback | feedback = null
| Pro zajišťování asynchronní zpětné vazby od pracovních vláken přímo do klientské aplikace.
Image | img = null
| Obraz.
WorkingTask | worker = null
| Task, na kterém probýhají asynchronně úpravy obrazu.
RenderingTask | renderer = null
| Task, který se stará o asynchronní renderování změněných oblastí obrazu.
NBitmap | wrOutput = null
| NBitmapa obalená okolo vstupu pro disp.
PDBitmap | output = null
| PDBitmapa obalená okolo vstupu pro disp. Používá se pro export obrazu.
Tool | selectedTool
| Vybraný nástroj, příkazy pro kreslení si jej berou odtud, aby nemusely sami držet odkaz.
ResizeAction | resizeAction = null
PDBitmap | origOut = null
NBitmap | wrOrigOut = null

## Private Attributes
boolean | disposed = false

## Detailed Description

Jádro aplikace, platformě nezávislé, pouze standartní C a Java.

Jádro aplikace, platformě nezávislé, pouze standartní C a Java. Funkcionalita specifická pro Android je zapouzdřena v balíčku mhr.appandroid, Kompatibilita s platformou je zajištěna třídami implementujícími rozhraní z mhr.appcore.interfaces

Definition at line 28 of file AppCore.java.

## Constructor & Destructor Documentation

mhr.appcore.AppCore.AppCore | ( | PDDisplayer | disp | ) |
| inline

Vytvoří instanci aplikace.

       Vytvoří instanci aplikace. Ta ovšem zatím nic neprovádí obraz je nutno vytvořit samostatně.

Parameters

  disp |

Definition at line 70 of file AppCore.java.

{
if (disp == null) {
throw new NullPointerException("disp should not be null");
}
this.disp = disp;
}

## Member Function Documentation

void mhr.appcore.AppCore.addCommand | ( | AppCommand | command | ) |
| inline

přídá příkaz do fronty pracovního vlákna

Parameters

  command |

Definition at line 220 of file AppCore.java.

{
worker.addCommand(command);
}

void mhr.appcore.AppCore.cropImage | ( | Rect | r | ) |
| inline

Provede ořez obrazu na daný obdélník.

Parameters

  r |

Definition at line 228 of file AppCore.java.

{
renderer.stop();
img.cropTo(r);
BitmapInfo oldi = output.getInfo();
PDBitmap oldOut = output;
output = oldOut.createBitmap(new BitmapInfo(img.getWidth(), img.getHeight(), oldi.channelCount, oldi.depth, oldi.colorMode, oldi.premultiplied));
wrOutput.dispose();
oldOut.dispose();
wrOutput = new NBitmap(output);
disp.setInput(output);
renderer.init();
renderer.start();
renderer.render();
}

void mhr.appcore.AppCore.dispose | ( |  | ) |
| inline

provede úklid po instanci

Definition at line 80 of file AppCore.java.

{
if(worker != null) {
worker.dispose();
worker = null;
}
if (renderer != null) {
renderer.dispose();
renderer = null;
}
if (img != null) {
img.dispose();
img = null;
}
if (selectedTool != null) {
selectedTool.dispose();
selectedTool = null;
}
if (wrOutput != null) {
wrOutput.dispose();
wrOutput = null;
}
}

void mhr.appcore.AppCore.finalize | ( |  | ) | throws Throwable
| inlineprotected

Definition at line 58 of file AppCore.java.

{
dispose();
super.finalize();
}

PDDisplayer mhr.appcore.AppCore.getDisp | ( |  | ) |
| inline

Vrací displayer.

Returns

Definition at line 131 of file AppCore.java.

{
return disp;
}

String mhr.appcore.AppCore.getDump | ( |  | ) |
| inline

debug metoda

Returns

Definition at line 389 of file AppCore.java.

{
// String retVal = dump.toString();
// dump.setLength(0);
// return retVal;
return "DUMP NOT SUPPORTED";
}

PDExceptionFeedback mhr.appcore.AppCore.getExceptionFeedback | ( |  | ) |
| inline

Vrátí objekt, který dostává zpětnou vazbu o nefatálních výjimkách.

Returns

Definition at line 212 of file AppCore.java.

{
return feedback;
}

Image mhr.appcore.AppCore.getImg | ( |  | ) |
| inline

Vrací obraz.

Returns

Definition at line 139 of file AppCore.java.

{
return img;
}

PDBitmap mhr.appcore.AppCore.getOutput | ( |  | ) |
| inline

wrací wrapper okolo výstupního obrazu

Returns

Definition at line 151 of file AppCore.java.

{
return output;
}

RenderingTask mhr.appcore.AppCore.getRenderer | ( |  | ) |
| inline

vrací renderovací vlákno

Returns

Definition at line 181 of file AppCore.java.

{
return renderer;
}

Tool mhr.appcore.AppCore.getTool | ( |  | ) |
| inline

Vrací vybraný nástroj.

Returns

Definition at line 173 of file AppCore.java.

{
return selectedTool;
}

NBitmap mhr.appcore.AppCore.getWrOutput | ( |  | ) |
| inline

Definition at line 143 of file AppCore.java.

{
return wrOutput;
}

void mhr.appcore.AppCore.openImage | ( | PDBitmap | bitmap | ) |
| inline

Vytvoří obraz z dat dané bitmapy.

Parameters

  bitmap |

Definition at line 308 of file AppCore.java.

{
dispose(); // Zastaví a uklidí veškeré zbytky...
img = new Image(bitmap);
output = bitmap;
wrOutput = new NBitmap(output);
disp.setInput(output);
start();
}

void mhr.appcore.AppCore.openImage | ( | ImageFile | f | ) |
| inline

Otevře obraz popsaný souborem.

Parameters

  f |

Definition at line 321 of file AppCore.java.

{
dispose(); // Zastaví a uklidí veškeré zbytky...
img = new Image(f);
output = f.loadOutput();
wrOutput = new NBitmap(output);
disp.setInput(output);
start();
}

void mhr.appcore.AppCore.resizeImage | ( | ResizeImageCommand | cmd | ) |
| inline

provede převzorkování obrazu dle daného příkazu

Parameters

  cmd |

Definition at line 247 of file AppCore.java.

{
switch (cmd.action) {
case INIT:
if (resizeAction != null) {
throw new IllegalStateException("Bad resize state");
}
renderer.stop();
origOut = output;
wrOrigOut = wrOutput;
resizeAction = ResizeAction.INIT;
break;
case PREVIEW:
if (resizeAction != ResizeAction.INIT) {
throw new IllegalStateException("Bad resize state");
}
BitmapInfo oldi = origOut.getInfo();
output = origOut.createBitmap(new BitmapInfo(cmd.newWidth, cmd.newHeight,oldi.channelCount, oldi.depth, oldi.colorMode, oldi.premultiplied));
wrOutput = new NBitmap(output);
Interpolator.resampleTo(wrOrigOut, wrOutput, cmd.iType, cmd.force);
wrOutput.dispose();
wrOutput = null;
disp.setInput(output);
disp.redraw();
break;
case COMMIT:
if (resizeAction != ResizeAction.INIT) {
throw new IllegalStateException("Bad resize state");
}
img.resizeTo(cmd.newWidth, cmd.newHeight, cmd.iType, cmd.force);
BitmapInfo oi = origOut.getInfo();
output = origOut.createBitmap(new BitmapInfo(cmd.newWidth, cmd.newHeight,oi.channelCount, oi.depth, oi.colorMode, oi.premultiplied));
wrOutput = new NBitmap(output);
wrOrigOut.dispose();
wrOrigOut = null;
disp.setInput(output);
renderer.init();
renderer.start();
renderer.render();
resizeAction = null;
break;
case CANCEL:
if (resizeAction == null) {
return;
}
wrOutput = wrOrigOut;
output = origOut;
disp.setInput(output);
renderer.init();
renderer.start();
renderer.render();
resizeAction = null;
break;
}
}

void mhr.appcore.AppCore.saveToFile | ( | ImageFile | f | ) |
| inline

Uloží do daného souboru aktuální obraz.

Parameters

  f |

Definition at line 369 of file AppCore.java.

{
suspend();
try {
img.exportToFile(f);
} catch (ImageLoadingException e) {
f.deleteFile();
wake();
return;
}
f.saveOutput(output);
wake();
}

void mhr.appcore.AppCore.setExceptionFeedback | ( | PDExceptionFeedback | feedback | ) |
| inline

Nastaví kam se má posílat zpětná vazba o nefatálních výjimkách.

Parameters

  feedback |

Definition at line 204 of file AppCore.java.

{
this.feedback = feedback;
}

void mhr.appcore.AppCore.setImagePresentation | ( | PDImageDataPresentation | pres | ) |
| inline

Nastaví prezentaci obrazu.

Parameters

  pres |

Definition at line 196 of file AppCore.java.

{
img.setPresentation(pres);
}

void mhr.appcore.AppCore.setRenderingThreadEH | ( | Thread.UncaughtExceptionHandler | handler | ) |
| inline

Nastaví handler neodchycených výjimek renderovacícho vlákna.

Parameters

  handler |

Definition at line 123 of file AppCore.java.

{
renderer.setThreadEH(handler);
}

void mhr.appcore.AppCore.setTool | ( | Tool | t | ) |
| inline

Nastaví daný nástroj jako aktivní

Parameters

  t |

Definition at line 159 of file AppCore.java.

{
if (selectedTool != null) {
if (img.getCanvasOwner() == selectedTool) {
img.submitCanvas(selectedTool, false); // Pro případ, že by nástroj ještě byl asociován s obrazem.
}
selectedTool.dispose();
}
selectedTool = t;
}

void mhr.appcore.AppCore.setWorkingThreadEH | ( | Thread.UncaughtExceptionHandler | handler | ) |
| inline

Nasteví handler neodchycených výjimek pracovního vlákna.

Parameters

  handler |

Definition at line 115 of file AppCore.java.

{
worker.setThreadEH(handler);
}

void mhr.appcore.AppCore.start | ( |  | ) |
| inline

spustí jádro aplikace - pracovní a renderovací vlákno

Definition at line 339 of file AppCore.java.

{
if (worker != null) {
worker.dispose();
}
if (renderer != null) {
renderer.dispose();
}
worker = new WorkingTask(this);
worker.start();
renderer = new RenderingTask(this);
renderer.init();
renderer.start();
}

void mhr.appcore.AppCore.stop | ( |  | ) |
| inline

Zastaví jádro aplikace.

Definition at line 356 of file AppCore.java.

{
if (worker != null) {
worker.stop();
}
if (renderer != null) {
renderer.stop();
}
}

void mhr.appcore.AppCore.suspend | ( |  | ) |
| inline

Definition at line 330 of file AppCore.java.

{
}

void mhr.appcore.AppCore.unsetExceptionFlag | ( |  | ) |
| inline

odstraňuje flag pro výjimku (AppNonFatalException)

Definition at line 188 of file AppCore.java.

{
worker.unsetExceptionFlag();
}

void mhr.appcore.AppCore.wake | ( |  | ) |
| inline

Definition at line 333 of file AppCore.java.

{
}

## Member Data Documentation

PDDisplayer mhr.appcore.AppCore.disp = null
| protected

Této třídě se předává výstupní obraz, stará se o výstup na obrazovku.

Definition at line 36 of file AppCore.java.

boolean mhr.appcore.AppCore.disposed = false
| private

Definition at line 45 of file AppCore.java.

PDExceptionFeedback mhr.appcore.AppCore.feedback = null
| protected

Pro zajišťování asynchronní zpětné vazby od pracovních vláken přímo do klientské aplikace.

Definition at line 37 of file AppCore.java.

Image mhr.appcore.AppCore.img = null
| protected

Obraz.

Definition at line 38 of file AppCore.java.

PDBitmap mhr.appcore.AppCore.origOut = null
| protected

Definition at line 50 of file AppCore.java.

PDBitmap mhr.appcore.AppCore.output = null
| protected

PDBitmapa obalená okolo vstupu pro disp. Používá se pro export obrazu.

Definition at line 43 of file AppCore.java.

RenderingTask mhr.appcore.AppCore.renderer = null
| protected

Task, který se stará o asynchronní renderování změněných oblastí obrazu.

Definition at line 41 of file AppCore.java.

ResizeAction mhr.appcore.AppCore.resizeAction = null
| protected

Definition at line 49 of file AppCore.java.

Tool mhr.appcore.AppCore.selectedTool
| protected

Vybraný nástroj, příkazy pro kreslení si jej berou odtud, aby nemusely sami držet odkaz.

Definition at line 47 of file AppCore.java.

WorkingTask mhr.appcore.AppCore.worker = null
| protected

Task, na kterém probýhají asynchronně úpravy obrazu.

Definition at line 40 of file AppCore.java.

NBitmap mhr.appcore.AppCore.wrOrigOut = null
| protected

Definition at line 51 of file AppCore.java.

NBitmap mhr.appcore.AppCore.wrOutput = null
| protected

NBitmapa obalená okolo vstupu pro disp.

Definition at line 42 of file AppCore.java.

The documentation for this class was generated from the following file:

- /home/xxx/eclipse_workspaces/app/appcore/src/mhr/appcore/AppCore.java