<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<!-- Generated by javadoc (1.8.0_201) on Thu Jul 23 15:58:34 CEST 2020 -->
<title>AbstractPictureControl</title>
<meta name="date" content="2020-07-23">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
</head>
<body>
<script type="text/javascript"><!--
    try {
        if (location.href.indexOf('is-external=true') == -1) {
            parent.document.title="AbstractPictureControl";
        }
    }
    catch(err) {
    }
//-->
var methods = {"i0":6,"i1":6,"i2":10,"i3":10,"i4":6,"i5":6,"i6":10,"i7":6,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":10,"i15":10,"i16":10,"i17":10,"i18":10,"i19":10,"i20":10,"i21":10,"i22":10,"i23":10,"i24":10,"i25":10,"i26":10,"i27":10,"i28":10,"i29":10,"i30":6,"i31":10,"i32":10,"i33":10,"i34":10};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"],8:["t4","Concrete Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractPictureControl.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/eclipse/nebula/widgets/picture/ImageFilterExtension.html" title="enum in org.eclipse.nebula.widgets.picture"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" target="_top">Frames</a></li>
<li><a href="AbstractPictureControl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_top");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!--   -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.eclipse.nebula.widgets.picture</div>
<h2 title="Class AbstractPictureControl" class="title">Class AbstractPictureControl&lt;T extends org.eclipse.swt.widgets.Control&gt;</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li>java.lang.Object</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Widget</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Control</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Scrollable</li>
<li>
<ul class="inheritance">
<li>org.eclipse.swt.widgets.Composite</li>
<li>
<ul class="inheritance">
<li>org.eclipse.nebula.widgets.picture.AbstractPictureControl&lt;T&gt;</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt><span class="paramLabel">Type Parameters:</span></dt>
<dd><code>T</code> - the "Modify" Link control used to upload a new image picture.</dd>
</dl>
<dl>
<dt>All Implemented Interfaces:</dt>
<dd>java.beans.PropertyChangeListener, java.util.EventListener, org.eclipse.swt.graphics.Drawable</dd>
</dl>
<dl>
<dt>Direct Known Subclasses:</dt>
<dd><a href="../../../../../org/eclipse/nebula/widgets/picture/forms/FormPictureControl.html" title="class in org.eclipse.nebula.widgets.picture.forms">FormPictureControl</a>, <a href="../../../../../org/eclipse/nebula/widgets/picture/PictureControl.html" title="class in org.eclipse.nebula.widgets.picture">PictureControl</a></dd>
</dl>
<hr>
<br>
<pre>public abstract class <span class="typeNameLabel">AbstractPictureControl&lt;T extends org.eclipse.swt.widgets.Control&gt;</span>
extends org.eclipse.swt.widgets.Composite
implements java.beans.PropertyChangeListener</pre>
<div class="block">Picture Control gives you the capability to display an image picture in a SWT
 Label and change it with "Modify" Link. This class is abstract must be
 implemented to override methodes whicg create SWT <code>Label</code>, SWT
 <code>Composite</code> and Link according if you use only SWT (see
 <a href="../../../../../org/eclipse/nebula/widgets/picture/PictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>PictureControl</code></a>) or SWT Form Toolkit (see <a href="../../../../../org/eclipse/nebula/widgets/picture/forms/FormPictureControl.html" title="class in org.eclipse.nebula.widgets.picture.forms"><code>FormPictureControl</code></a>.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!--   -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#BUNDLE_NAME">BUNDLE_NAME</a></span></code>
<div class="block">Bundle name constant</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>static java.lang.String</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#IMAGE_BYTEARRAY_PROPERTY">IMAGE_BYTEARRAY_PROPERTY</a></span></code>&nbsp;</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected java.util.ResourceBundle</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#resources">resources</a></span></code>
<div class="block">Resources bundle</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="fields.inherited.from.class.org.eclipse.swt.widgets.Control">
<!--   -->
</a>
<h3>Fields inherited from class&nbsp;org.eclipse.swt.widgets.Control</h3>
<code>handle</code></li>
</ul>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!--   -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#AbstractPictureControl-org.eclipse.swt.widgets.Composite-">AbstractPictureControl</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent)</code>
<div class="block">Constructor for <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>AbstractPictureControl</code></a> with default SWT styles.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code>&nbsp;</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#AbstractPictureControl-org.eclipse.swt.widgets.Composite-int-int-int-">AbstractPictureControl</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
                      int&nbsp;compositeStyle,
                      int&nbsp;labelStyle,
                      int&nbsp;linkStyle)</code>
<div class="block">Constructor for <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>AbstractPictureControl</code></a> with given SWT style .</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#AbstractPictureControl-org.eclipse.swt.widgets.Composite-int-int-int-boolean-">AbstractPictureControl</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
                      int&nbsp;compositeStyle,
                      int&nbsp;labelStyle,
                      int&nbsp;linkStyle,
                      boolean&nbsp;createUI)</code>
<div class="block">Constructor for <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>AbstractPictureControl</code></a> with given SWT styles.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!--   -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#addDeleteImageHandler-T-">addDeleteImageHandler</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;deleteImageLink)</code>
<div class="block">Add the handler to delete the image to the Link control.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#addModifyImageHandler-T-">addModifyImageHandler</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;modifyImageLink)</code>
<div class="block">Add the handler to open Explorer files to the Link control.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#addPropertyChangeListener-java.lang.String-java.beans.PropertyChangeListener-">addPropertyChangeListener</a></span>(java.lang.String&nbsp;propertyName,
                         java.beans.PropertyChangeListener&nbsp;listener)</code>&nbsp;</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#configure-org.eclipse.swt.widgets.FileDialog-">configure</a></span>(org.eclipse.swt.widgets.FileDialog&nbsp;fd)</code>
<div class="block">Configure the <code>FileDialog</code> to set the file extension, the text,
 etc.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>protected abstract org.eclipse.swt.widgets.Composite</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#createComposite-org.eclipse.swt.widgets.Composite-int-">createComposite</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
               int&nbsp;style)</code>
<div class="block">Create a SWT <code>Composite</code>.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>protected abstract org.eclipse.swt.widgets.Label</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#createLabel-org.eclipse.swt.widgets.Composite-int-">createLabel</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
           int&nbsp;style)</code>
<div class="block">Create a SWT <code>Label</code>.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>protected org.eclipse.swt.widgets.Label</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#createLabelImage-org.eclipse.swt.widgets.Composite-int-">createLabelImage</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
                int&nbsp;style)</code>
<div class="block">Create the SWT <code>Label</code> to host the image picture.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>protected abstract <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#createLink-org.eclipse.swt.widgets.Composite-int-">createLink</a></span>(org.eclipse.swt.widgets.Composite&nbsp;parent,
          int&nbsp;style)</code>
<div class="block">Create a SWT control for the "Modify" Link.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>protected org.eclipse.swt.widgets.Menu</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#createMenu-org.eclipse.swt.widgets.Control-">createMenu</a></span>(org.eclipse.swt.widgets.Control&nbsp;parent)</code>
<div class="block">Create the menu with "Delete", "Modify" Item.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>protected org.eclipse.swt.widgets.Composite</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#createUI-int-int-">createUI</a></span>(int&nbsp;labelStyle,
        int&nbsp;linkStyle)</code>
<div class="block">Create the UI picture control composed with Label (for host the image
 picture)</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#dispose--">dispose</a></span>()</code>&nbsp;</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getDeleteImageLink--">getDeleteImageLink</a></span>()</code>
<div class="block">Returns the "Delete" Link control used to open Explorer files to change
 image.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>protected int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getFileDialogStyle--">getFileDialogStyle</a></span>()</code>
<div class="block">Returns the <code>FileDialog</code>SWT style.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getImageByteArray--">getImageByteArray</a></span>()</code>
<div class="block">Returns the byte array of the image picture and null if none picture was
 setted.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>java.io.InputStream</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getImageStream--">getImageStream</a></span>()</code>
<div class="block">Returns the <code>InputStream</code> of the image picture and null if none
 picture was setted.</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code>java.lang.Integer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getMaxImageHeight--">getMaxImageHeight</a></span>()</code>
<div class="block">Returns the maximum height of the image.</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code>java.lang.Integer</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getMaxImageWidth--">getMaxImageWidth</a></span>()</code>
<div class="block">Returns the maximum width of the image.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getModifyImageLink--">getModifyImageLink</a></span>()</code>
<div class="block">Returns the "Modify" Link control used to open Explorer files to change
 image.</div>
</td>
</tr>
<tr id="i18" class="altColor">
<td class="colFirst"><code>org.eclipse.swt.widgets.Label</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getPictureLabel--">getPictureLabel</a></span>()</code>
<div class="block">Returns the picture label which hosts the picture image.</div>
</td>
</tr>
<tr id="i19" class="rowColor">
<td class="colFirst"><code>protected org.eclipse.swt.graphics.ImageData</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#getResizedImageData-org.eclipse.swt.graphics.ImageData-">getResizedImageData</a></span>(org.eclipse.swt.graphics.ImageData&nbsp;imageData)</code>
<div class="block">Returns the resized <code>ImageData</code>.</div>
</td>
</tr>
<tr id="i20" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#handleDeleteImage--">handleDeleteImage</a></span>()</code>
<div class="block">Delete the current image picture.</div>
</td>
</tr>
<tr id="i21" class="rowColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#handleError-java.lang.Throwable-">handleError</a></span>(java.lang.Throwable&nbsp;e)</code>
<div class="block">Handle error when file selected cannot be loaded as Image.</div>
</td>
</tr>
<tr id="i22" class="altColor">
<td class="colFirst"><code>protected void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#handleModifyImage--">handleModifyImage</a></span>()</code>
<div class="block">Open the Explorer File to select a new image.</div>
</td>
</tr>
<tr id="i23" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#propertyChange-java.beans.PropertyChangeEvent-">propertyChange</a></span>(java.beans.PropertyChangeEvent&nbsp;arg0)</code>&nbsp;</td>
</tr>
<tr id="i24" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#removePropertyChangeListener-java.beans.PropertyChangeListener-">removePropertyChangeListener</a></span>(java.beans.PropertyChangeListener&nbsp;listener)</code>&nbsp;</td>
</tr>
<tr id="i25" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setDefaultImage-org.eclipse.swt.graphics.Image-">setDefaultImage</a></span>(org.eclipse.swt.graphics.Image&nbsp;defaultImage)</code>
<div class="block">Set the default image for the picture.</div>
</td>
</tr>
<tr id="i26" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setDeleteImageLinkText-java.lang.String-">setDeleteImageLinkText</a></span>(java.lang.String&nbsp;text)</code>
<div class="block">Set the text of the "Modify" Link.</div>
</td>
</tr>
<tr id="i27" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setFilterExtensions-java.lang.String:A-">setFilterExtensions</a></span>(java.lang.String[]&nbsp;extensions)</code>
<div class="block">Set the file extensions which the dialog will use to filter the files it
 shows to the argument, which may be null.</div>
</td>
</tr>
<tr id="i28" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setImageByteArray-byte:A-">setImageByteArray</a></span>(byte[]&nbsp;imageByteArray)</code>
<div class="block">Set the current byte array of the image picture.</div>
</td>
</tr>
<tr id="i29" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setImageStream-java.io.InputStream-">setImageStream</a></span>(java.io.InputStream&nbsp;stream)</code>
<div class="block">Set the current <code>InputStream</code> of the image picture.</div>
</td>
</tr>
<tr id="i30" class="altColor">
<td class="colFirst"><code>protected abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setLinkText-T-java.lang.String-">setLinkText</a></span>(<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;link,
           java.lang.String&nbsp;text)</code>
<div class="block">Set the text of a Link control.</div>
</td>
</tr>
<tr id="i31" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setLocale-java.util.Locale-">setLocale</a></span>(java.util.Locale&nbsp;locale)</code>
<div class="block">Sets a new locale to use for picture controle.</div>
</td>
</tr>
<tr id="i32" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setMaxImageHeight-java.lang.Integer-">setMaxImageHeight</a></span>(java.lang.Integer&nbsp;maxImageHeight)</code>
<div class="block">Set the maximum height of the image.</div>
</td>
</tr>
<tr id="i33" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setMaxImageWidth-java.lang.Integer-">setMaxImageWidth</a></span>(java.lang.Integer&nbsp;maxImageWidth)</code>
<div class="block">Set the maximum width of the image.</div>
</td>
</tr>
<tr id="i34" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html#setModifyImageLinkText-java.lang.String-">setModifyImageLinkText</a></span>(java.lang.String&nbsp;text)</code>
<div class="block">Set the text of the "Modify" Link.</div>
</td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Composite">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Composite</h3>
<code>changed, checkSubclass, drawBackground, getBackgroundMode, getChildren, getLayout, getLayoutDeferred, getTabList, isLayoutDeferred, layout, layout, layout, layout, layout, setBackgroundMode, setFocus, setLayout, setLayoutDeferred, setTabList</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Scrollable">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Scrollable</h3>
<code>computeTrim, getClientArea, getHorizontalBar, getScrollbarsMode, getVerticalBar</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Control">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Control</h3>
<code>addControlListener, addDragDetectListener, addFocusListener, addGestureListener, addHelpListener, addKeyListener, addMenuDetectListener, addMouseListener, addMouseMoveListener, addMouseTrackListener, addMouseWheelListener, addPaintListener, addTouchListener, addTraverseListener, computeSize, computeSize, dragDetect, dragDetect, forceFocus, getAccessible, getBackground, getBackgroundImage, getBorderWidth, getBounds, getCursor, getDragDetect, getEnabled, getFont, getForeground, getLayoutData, getLocation, getMenu, getMonitor, getOrientation, getParent, getRegion, getShell, getSize, getTextDirection, getToolTipText, getTouchEnabled, getVisible, internal_dispose_GC, internal_new_GC, isEnabled, isFocusControl, isReparentable, isVisible, moveAbove, moveBelow, pack, pack, print, redraw, redraw, removeControlListener, removeDragDetectListener, removeFocusListener, removeGestureListener, removeHelpListener, removeKeyListener, removeMenuDetectListener, removeMouseListener, removeMouseMoveListener, removeMouseTrackListener, removeMouseWheelListener, removePaintListener, removeTouchListener, removeTraverseListener, requestLayout, setBackground, setBackgroundImage, setBounds, setBounds, setCapture, setCursor, setDragDetect, setEnabled, setFont, setForeground, setLayoutData, setLocation, setLocation, setMenu, setOrientation, setParent, setRedraw, setRegion, setSize, setSize, setTextDirection, setToolTipText, setTouchEnabled, setVisible, toControl, toControl, toDisplay, toDisplay, traverse, traverse, traverse, update</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.widgets.Widget">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;org.eclipse.swt.widgets.Widget</h3>
<code>addDisposeListener, addListener, checkWidget, getData, getData, getDisplay, getListeners, getStyle, isAutoDirection, isDisposed, isListening, notifyListeners, removeDisposeListener, removeListener, removeListener, reskin, setData, setData, toString</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!--   -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.Object</h3>
<code>clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait</code></li>
</ul>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.org.eclipse.swt.graphics.Drawable">
<!--   -->
</a>
<h3>Methods inherited from interface&nbsp;org.eclipse.swt.graphics.Drawable</h3>
<code>isAutoScalable</code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!--   -->
</a>
<h3>Field Detail</h3>
<a name="BUNDLE_NAME">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>BUNDLE_NAME</h4>
<pre>public static final&nbsp;java.lang.String BUNDLE_NAME</pre>
<div class="block">Bundle name constant</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.nebula.widgets.picture.AbstractPictureControl.BUNDLE_NAME">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="IMAGE_BYTEARRAY_PROPERTY">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>IMAGE_BYTEARRAY_PROPERTY</h4>
<pre>public static final&nbsp;java.lang.String IMAGE_BYTEARRAY_PROPERTY</pre>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../constant-values.html#org.eclipse.nebula.widgets.picture.AbstractPictureControl.IMAGE_BYTEARRAY_PROPERTY">Constant Field Values</a></dd>
</dl>
</li>
</ul>
<a name="resources">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>resources</h4>
<pre>protected&nbsp;java.util.ResourceBundle resources</pre>
<div class="block">Resources bundle</div>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!--   -->
</a>
<h3>Constructor Detail</h3>
<a name="AbstractPictureControl-org.eclipse.swt.widgets.Composite-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractPictureControl</h4>
<pre>public&nbsp;AbstractPictureControl(org.eclipse.swt.widgets.Composite&nbsp;parent)</pre>
<div class="block">Constructor for <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>AbstractPictureControl</code></a> with default SWT styles.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
</dl>
</li>
</ul>
<a name="AbstractPictureControl-org.eclipse.swt.widgets.Composite-int-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>AbstractPictureControl</h4>
<pre>public&nbsp;AbstractPictureControl(org.eclipse.swt.widgets.Composite&nbsp;parent,
                              int&nbsp;compositeStyle,
                              int&nbsp;labelStyle,
                              int&nbsp;linkStyle)</pre>
<div class="block">Constructor for <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>AbstractPictureControl</code></a> with given SWT style .</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
<dd><code>compositeStyle</code> - SWT style of the SWT Composite which host Label+Link controls.</dd>
<dd><code>labelStyle</code> - SWT style of the Label control.</dd>
<dd><code>linkStyle</code> - SWT style of the Link control.</dd>
</dl>
</li>
</ul>
<a name="AbstractPictureControl-org.eclipse.swt.widgets.Composite-int-int-int-boolean-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>AbstractPictureControl</h4>
<pre>protected&nbsp;AbstractPictureControl(org.eclipse.swt.widgets.Composite&nbsp;parent,
                                 int&nbsp;compositeStyle,
                                 int&nbsp;labelStyle,
                                 int&nbsp;linkStyle,
                                 boolean&nbsp;createUI)</pre>
<div class="block">Constructor for <a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="class in org.eclipse.nebula.widgets.picture"><code>AbstractPictureControl</code></a> with given SWT styles.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
<dd><code>compositeStyle</code> - SWT style of the SWT Composite which host Label+Link controls.</dd>
<dd><code>labelStyle</code> - SWT style of the Label control.</dd>
<dd><code>linkStyle</code> - SWT style of the Link control.</dd>
<dd><code>createUI</code> - true if UI must be created and false otherwise.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!--   -->
</a>
<h3>Method Detail</h3>
<a name="createUI-int-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createUI</h4>
<pre>protected&nbsp;org.eclipse.swt.widgets.Composite&nbsp;createUI(int&nbsp;labelStyle,
                                                     int&nbsp;linkStyle)</pre>
<div class="block">Create the UI picture control composed with Label (for host the image
 picture)</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>labelStyle</code> - the SWT label style.</dd>
<dd><code>linkStyle</code> - the link style.</dd>
</dl>
</li>
</ul>
<a name="createLabelImage-org.eclipse.swt.widgets.Composite-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createLabelImage</h4>
<pre>protected&nbsp;org.eclipse.swt.widgets.Label&nbsp;createLabelImage(org.eclipse.swt.widgets.Composite&nbsp;parent,
                                                         int&nbsp;style)</pre>
<div class="block">Create the SWT <code>Label</code> to host the image picture.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
<dd><code>style</code> - the style of control to construct</dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="createMenu-org.eclipse.swt.widgets.Control-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createMenu</h4>
<pre>protected&nbsp;org.eclipse.swt.widgets.Menu&nbsp;createMenu(org.eclipse.swt.widgets.Control&nbsp;parent)</pre>
<div class="block">Create the menu with "Delete", "Modify" Item.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setModifyImageLinkText-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setModifyImageLinkText</h4>
<pre>public&nbsp;void&nbsp;setModifyImageLinkText(java.lang.String&nbsp;text)</pre>
<div class="block">Set the text of the "Modify" Link.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>text</code> - </dd>
</dl>
</li>
</ul>
<a name="setDeleteImageLinkText-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDeleteImageLinkText</h4>
<pre>public&nbsp;void&nbsp;setDeleteImageLinkText(java.lang.String&nbsp;text)</pre>
<div class="block">Set the text of the "Modify" Link.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>text</code> - </dd>
</dl>
</li>
</ul>
<a name="handleDeleteImage--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleDeleteImage</h4>
<pre>protected&nbsp;void&nbsp;handleDeleteImage()</pre>
<div class="block">Delete the current image picture.</div>
</li>
</ul>
<a name="setFilterExtensions-java.lang.String:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setFilterExtensions</h4>
<pre>public&nbsp;void&nbsp;setFilterExtensions(java.lang.String[]&nbsp;extensions)</pre>
<div class="block">Set the file extensions which the dialog will use to filter the files it
 shows to the argument, which may be null.
 <p>
 The strings are platform specific. For example, on some platforms, an
 extension filter string is typically of the form "*.extension", where
 "*.*" matches all files. For filters with multiple extensions, use
 semicolon as a separator, e.g. "*.jpg;*.png".
 </p></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>extensions</code> - the file extension filter</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><code>to specify the user-friendly names corresponding to
      the extensions</code></dd>
</dl>
</li>
</ul>
<a name="handleModifyImage--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleModifyImage</h4>
<pre>protected&nbsp;void&nbsp;handleModifyImage()</pre>
<div class="block">Open the Explorer File to select a new image.</div>
</li>
</ul>
<a name="configure-org.eclipse.swt.widgets.FileDialog-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>configure</h4>
<pre>protected&nbsp;void&nbsp;configure(org.eclipse.swt.widgets.FileDialog&nbsp;fd)</pre>
<div class="block">Configure the <code>FileDialog</code> to set the file extension, the text,
 etc. This method can be override to custome the configuration.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>fd</code> - </dd>
</dl>
</li>
</ul>
<a name="getFileDialogStyle--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getFileDialogStyle</h4>
<pre>protected&nbsp;int&nbsp;getFileDialogStyle()</pre>
<div class="block">Returns the <code>FileDialog</code>SWT style. This method can be override if
 the SWT style should be customized.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="handleError-java.lang.Throwable-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>handleError</h4>
<pre>protected&nbsp;void&nbsp;handleError(java.lang.Throwable&nbsp;e)</pre>
<div class="block">Handle error when file selected cannot be loaded as Image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>e</code> - </dd>
</dl>
</li>
</ul>
<a name="getPictureLabel--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPictureLabel</h4>
<pre>public&nbsp;org.eclipse.swt.widgets.Label&nbsp;getPictureLabel()</pre>
<div class="block">Returns the picture label which hosts the picture image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="getModifyImageLink--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getModifyImageLink</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;getModifyImageLink()</pre>
<div class="block">Returns the "Modify" Link control used to open Explorer files to change
 image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="getDeleteImageLink--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDeleteImageLink</h4>
<pre>public&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;getDeleteImageLink()</pre>
<div class="block">Returns the "Delete" Link control used to open Explorer files to change
 image.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="addPropertyChangeListener-java.lang.String-java.beans.PropertyChangeListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addPropertyChangeListener</h4>
<pre>public&nbsp;void&nbsp;addPropertyChangeListener(java.lang.String&nbsp;propertyName,
                                      java.beans.PropertyChangeListener&nbsp;listener)</pre>
</li>
</ul>
<a name="removePropertyChangeListener-java.beans.PropertyChangeListener-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removePropertyChangeListener</h4>
<pre>public&nbsp;void&nbsp;removePropertyChangeListener(java.beans.PropertyChangeListener&nbsp;listener)</pre>
</li>
</ul>
<a name="propertyChange-java.beans.PropertyChangeEvent-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>propertyChange</h4>
<pre>public&nbsp;void&nbsp;propertyChange(java.beans.PropertyChangeEvent&nbsp;arg0)</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code>propertyChange</code>&nbsp;in interface&nbsp;<code>java.beans.PropertyChangeListener</code></dd>
</dl>
</li>
</ul>
<a name="setImageStream-java.io.InputStream-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setImageStream</h4>
<pre>public&nbsp;void&nbsp;setImageStream(java.io.InputStream&nbsp;stream)
                    throws java.io.IOException</pre>
<div class="block">Set the current <code>InputStream</code> of the image picture. null is
 accepted to delete the image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>stream</code> - </dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code>java.io.IOException</code></dd>
</dl>
</li>
</ul>
<a name="getImageStream--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImageStream</h4>
<pre>public&nbsp;java.io.InputStream&nbsp;getImageStream()</pre>
<div class="block">Returns the <code>InputStream</code> of the image picture and null if none
 picture was setted.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setImageByteArray-byte:A-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setImageByteArray</h4>
<pre>public&nbsp;void&nbsp;setImageByteArray(byte[]&nbsp;imageByteArray)</pre>
<div class="block">Set the current byte array of the image picture. null is accepted to
 delete the image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>imageByteArray</code> - </dd>
</dl>
</li>
</ul>
<a name="getResizedImageData-org.eclipse.swt.graphics.ImageData-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getResizedImageData</h4>
<pre>protected&nbsp;org.eclipse.swt.graphics.ImageData&nbsp;getResizedImageData(org.eclipse.swt.graphics.ImageData&nbsp;imageData)</pre>
<div class="block">Returns the resized <code>ImageData</code>. This method can be override if
 scale logic doen't please you.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>imageData</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="getImageByteArray--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getImageByteArray</h4>
<pre>public&nbsp;byte[]&nbsp;getImageByteArray()</pre>
<div class="block">Returns the byte array of the image picture and null if none picture was
 setted.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setLocale-java.util.Locale-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLocale</h4>
<pre>public&nbsp;void&nbsp;setLocale(java.util.Locale&nbsp;locale)</pre>
<div class="block">Sets a new locale to use for picture controle. Locale will choose the
 well resources bundle.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>locale</code> - new locale (must not be null)</dd>
</dl>
</li>
</ul>
<a name="setMaxImageHeight-java.lang.Integer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxImageHeight</h4>
<pre>public&nbsp;void&nbsp;setMaxImageHeight(java.lang.Integer&nbsp;maxImageHeight)</pre>
<div class="block">Set the maximum height of the image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxImageHeight</code> - </dd>
</dl>
</li>
</ul>
<a name="getMaxImageHeight--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxImageHeight</h4>
<pre>public&nbsp;java.lang.Integer&nbsp;getMaxImageHeight()</pre>
<div class="block">Returns the maximum height of the image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxImageHeight</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setMaxImageWidth-java.lang.Integer-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setMaxImageWidth</h4>
<pre>public&nbsp;void&nbsp;setMaxImageWidth(java.lang.Integer&nbsp;maxImageWidth)</pre>
<div class="block">Set the maximum width of the image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxImageWidth</code> - </dd>
</dl>
</li>
</ul>
<a name="getMaxImageWidth--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getMaxImageWidth</h4>
<pre>public&nbsp;java.lang.Integer&nbsp;getMaxImageWidth()</pre>
<div class="block">Returns the maximum width of the image.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>maxImageWidth</code> - </dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setDefaultImage-org.eclipse.swt.graphics.Image-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setDefaultImage</h4>
<pre>public&nbsp;void&nbsp;setDefaultImage(org.eclipse.swt.graphics.Image&nbsp;defaultImage)</pre>
<div class="block">Set the default image for the picture. The default image doesn't store
 the input stream of the image in this control. It is used just to display
 an "empty" picture and set the maximum/minimum width of the picture
 Label.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>defaultImage</code> - </dd>
</dl>
</li>
</ul>
<a name="dispose--">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>dispose</h4>
<pre>public&nbsp;void&nbsp;dispose()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code>dispose</code>&nbsp;in class&nbsp;<code>org.eclipse.swt.widgets.Widget</code></dd>
</dl>
</li>
</ul>
<a name="createLabel-org.eclipse.swt.widgets.Composite-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createLabel</h4>
<pre>protected abstract&nbsp;org.eclipse.swt.widgets.Label&nbsp;createLabel(org.eclipse.swt.widgets.Composite&nbsp;parent,
                                                             int&nbsp;style)</pre>
<div class="block">Create a SWT <code>Label</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
<dd><code>style</code> - the style of control to construct</dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="createLink-org.eclipse.swt.widgets.Composite-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createLink</h4>
<pre>protected abstract&nbsp;<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;createLink(org.eclipse.swt.widgets.Composite&nbsp;parent,
                                int&nbsp;style)</pre>
<div class="block">Create a SWT control for the "Modify" Link.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
<dd><code>style</code> - the style of control to construct</dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="createComposite-org.eclipse.swt.widgets.Composite-int-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>createComposite</h4>
<pre>protected abstract&nbsp;org.eclipse.swt.widgets.Composite&nbsp;createComposite(org.eclipse.swt.widgets.Composite&nbsp;parent,
                                                                     int&nbsp;style)</pre>
<div class="block">Create a SWT <code>Composite</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parent</code> - a composite control which will be the parent of the new
            instance (cannot be null)</dd>
<dd><code>style</code> - the style of control to construct</dd>
<dt><span class="returnLabel">Returns:</span></dt>
</dl>
</li>
</ul>
<a name="setLinkText-org.eclipse.swt.widgets.Control-java.lang.String-">
<!--   -->
</a><a name="setLinkText-T-java.lang.String-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setLinkText</h4>
<pre>protected abstract&nbsp;void&nbsp;setLinkText(<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;link,
                                    java.lang.String&nbsp;text)</pre>
<div class="block">Set the text of a Link control.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>modifyImageLink</code> - </dd>
<dd><code>text</code> - </dd>
</dl>
</li>
</ul>
<a name="addModifyImageHandler-org.eclipse.swt.widgets.Control-">
<!--   -->
</a><a name="addModifyImageHandler-T-">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>addModifyImageHandler</h4>
<pre>protected abstract&nbsp;void&nbsp;addModifyImageHandler(<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;modifyImageLink)</pre>
<div class="block">Add the handler to open Explorer files to the Link control.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>modifyImageLink</code> - </dd>
</dl>
</li>
</ul>
<a name="addDeleteImageHandler-org.eclipse.swt.widgets.Control-">
<!--   -->
</a><a name="addDeleteImageHandler-T-">
<!--   -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>addDeleteImageHandler</h4>
<pre>protected abstract&nbsp;void&nbsp;addDeleteImageHandler(<a href="../../../../../org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" title="type parameter in AbstractPictureControl">T</a>&nbsp;deleteImageLink)</pre>
<div class="block">Add the handler to delete the image to the Link control.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>modifyImageLink</code> - </dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!--   -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!--   -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/AbstractPictureControl.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-files/index-1.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/eclipse/nebula/widgets/picture/ImageFilterExtension.html" title="enum in org.eclipse.nebula.widgets.picture"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/eclipse/nebula/widgets/picture/AbstractPictureControl.html" target="_top">Frames</a></li>
<li><a href="AbstractPictureControl.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
  allClassesLink = document.getElementById("allclasses_navbar_bottom");
  if(window==top) {
    allClassesLink.style.display = "block";
  }
  else {
    allClassesLink.style.display = "none";
  }
  //-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!--   -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
</body>
</html>
