App
FilterCancelableTool.java
Go to the documentation of this file.
1 package mhr.appcore.tools.cancelable.filter;
2 
3 import mhr.appcore.bitmap.ChannelCount;
4 import mhr.appcore.bitmap.NBitmap;
5 import mhr.appcore.filters.Filter;
6 import mhr.appcore.image.Image;
7 import mhr.appcore.image.ImageSelectedState;
8 import mhr.appcore.pointops.LUT;
9 import mhr.appcore.tools.actiondata.CancelableToolActionData;
10 import mhr.appcore.tools.actiondata.ToolActionData;
11 import mhr.appcore.tools.cancelable.CancelableTool;
12 import mhr.appcore.tools.exceptions.ToolNotApplicableException;
13 import mhr.appcore.utils.Rect;
14 
19 public abstract class FilterCancelableTool extends CancelableTool {
20 
21  //===== INTERFACES, CLASSES, ENUMS ==========================================================================================================//
22  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
23  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
24 
25  //===== FIELDS ==============================================================================================================================//
26  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
27  protected Filter f = null;
28 
29  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
30 
31  //===== CONSTRUCTORS, DESTRUCTORS, RELATED METHODS ==========================================================================================//
32  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
33  @Override
34  protected void finalize() throws Throwable {
35  dispose();
36  super.finalize();
37  }
38 
39  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
41  f = new Filter();
42  }
43 
44  @Override
45  public synchronized void dispose() {
46  if (f != null) {
47  f.dispose();
48  f = null;
49  }
50  }
51 
52  //===== METHODS =============================================================================================================================//
53  //----- NON-PUBLIC --------------------------------------------------------------------------------------------------------------------------//
54 
55  //----- PUBLIC ------------------------------------------------------------------------------------------------------------------------------//
56  @Override
57  public void applyTo(Image img, ToolActionData data) {
59  throw new ToolNotApplicableException("Selected tool is not applicable to selected item.");
60  }
61  super.applyTo(img, data);
62  }
63 
64  @Override
65  public synchronized void onRender(Image img, NBitmap canvas, NBitmap tmpLayer, NBitmap origLayer, NBitmap masterMask, Rect src, int srcOrigX, int srcOrigY) {
66  origLayer.copyTo(tmpLayer, src, srcOrigX, srcOrigY);
67  if (f == null) {
68  return;
69  }
70  if (masterMask != null) {
71  f.applyTo(tmpLayer, masterMask, src, srcOrigX, srcOrigY, 1.0);
72  } else {
73  f.applyTo(tmpLayer, src, 1.0);
74  }
75  }
76 
77  @Override
78  public synchronized void onCommit(Image image, NBitmap canvas, NBitmap tmpLayer, NBitmap origLayer, NBitmap masterMask, Rect src, int srcOrigX, int srcOrigY) {
79  if (f == null) {
80  return;
81  }
82  if (masterMask != null) {
83  f.applyTo(origLayer, masterMask, src, srcOrigX, srcOrigY, 1.0);
84  } else {
85  f.applyTo(origLayer, src, 1.0);
86  }
87  }
88 
89  //===== CALLBACKS ===========================================================================================================================//
90 
91  //----- destruktory -------------------------------------------------------------------------------------------------------------------------//
92 
93  //----- metody ------------------------------------------------------------------------------------------------------------------------------//
94 
95 }