<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8" />
    <meta name="generator" content="JsDoc Toolkit" />
    
    <title>JsDoc Reference - RemoteObject</title>

    <style type="text/css">
      /* default.css */
body
{
	font: 12px "Lucida Grande", Tahoma, Arial, Helvetica, sans-serif;
	width: 800px;
}

.header
{
	clear: both;
	background-color: #ccc;
	padding: 8px;
}

h1
{
	font-size: 150%;
	font-weight: bold;
	padding: 0;
	margin: 1em 0 0 .3em;
}

hr
{
	border: none 0;
	border-top: 1px solid #7F8FB1;
	height: 1px;
}

pre.code
{
	display: block;
	padding: 8px;
	border: 1px dashed #ccc;
}

#index
{
	margin-top: 24px;
	float: left;
	width: 160px;
	position: absolute;
	left: 8px;
	background-color: #F3F3F3;
	padding: 8px;
}

#content
{
	margin-left: 190px;
	width: 600px;
}

.classList
{
	list-style-type: none;
	padding: 0;
	margin: 0 0 0 8px;
	font-family: arial, sans-serif;
	font-size: 1em;
	overflow: auto;
}

.classList li
{
	padding: 0;
	margin: 0 0 8px 0;
}

.summaryTable { width: 100%; }

h1.classTitle
{
	font-size:170%;
	line-height:130%;
}

h2 { font-size: 110%; }
caption, div.sectionTitle
{
	background-color: #7F8FB1;
	color: #fff;
	font-size:130%;
	text-align: left;
	padding: 2px 6px 2px 6px;
	border: 1px #7F8FB1 solid;
}

div.sectionTitle { margin-bottom: 8px; }
.summaryTable thead { display: none; }

.summaryTable td
{
	vertical-align: top;
	padding: 4px;
	border-bottom: 1px #7F8FB1 solid;
	border-right: 1px #7F8FB1 solid;
}

/*col#summaryAttributes {}*/
.summaryTable td.attributes
{
	border-left: 1px #7F8FB1 solid;
	width: 140px;
	text-align: right;
}

td.attributes, .fixedFont
{
	line-height: 15px;
	color: #002EBE;
	font-family: "Courier New",Courier,monospace;
	font-size: 13px;
}

.summaryTable td.nameDescription
{
	text-align: left;
	font-size: 13px;
	line-height: 15px;
}

.summaryTable td.nameDescription, .description
{
	line-height: 15px;
	padding: 4px;
	padding-left: 4px;
}

.summaryTable { margin-bottom: 8px; }

ul.inheritsList
{
	list-style: square;
	margin-left: 20px;
	padding-left: 0;
}

.detailList {
	margin-left: 20px; 
	line-height: 15px;
}
.detailList dt { margin-left: 20px; }

.detailList .heading
{
	font-weight: bold;
	padding-bottom: 6px;
	margin-left: 0;
}

.light, td.attributes, .light a:link, .light a:visited
{
	color: #777;
	font-style: italic;
}

.fineprint
{
	text-align: right;
	font-size: 10px;
}
    </style>
  </head>

  <body>
<!-- ============================== header ================================= -->
    <!-- begin static/header.html -->
    <div id="header">
</div>
    <!-- end static/header.html -->

<!-- ============================== classes index ============================ -->
    <div id="index">
      <!-- begin publish.classesIndex -->
      <div align="center"><a href="../index.html">Index</a></div>
<hr />
<h2>Global Objects</h2>
<ul class="classList">
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li></li>
  
  <li><a href="../symbols/rap.html">rap</a></li>
  
  <li><a href="../symbols/SWT.html">SWT</a></li>
  
</ul>
<h2>Types</h2>
<ul class="classList">
  
  <li><a href="../symbols/%24.html">$</a></li>
  
  <li><a href="../symbols/Button.html">Button</a></li>
  
  <li><a href="../symbols/Canvas.html">Canvas</a></li>
  
  <li><a href="../symbols/Client.html">Client</a></li>
  
  <li><a href="../symbols/Combo.html">Combo</a></li>
  
  <li><a href="../symbols/Composite.html">Composite</a></li>
  
  <li><a href="../symbols/Control.html">Control</a></li>
  
  <li><a href="../symbols/Event.html">Event</a></li>
  
  <li><a href="../symbols/Label.html">Label</a></li>
  
  <li><a href="../symbols/ProgressBar.html">ProgressBar</a></li>
  
  <li><a href="../symbols/RemoteObject.html">RemoteObject</a></li>
  
  <li><a href="../symbols/Scale.html">Scale</a></li>
  
  <li><a href="../symbols/ScrolledComposite.html">ScrolledComposite</a></li>
  
  <li><a href="../symbols/Slider.html">Slider</a></li>
  
  <li><a href="../symbols/Spinner.html">Spinner</a></li>
  
  <li><a href="../symbols/Text.html">Text</a></li>
  
  <li><a href="../symbols/Widget.html">Widget</a></li>
  
  <li></li>
  
  <li></li>
  
</ul>
<hr />
      <!-- end publish.classesIndex -->
    </div>

    <div id="content">
<!-- ============================== class title ============================ -->
      <h1 class="classTitle">
        
        Type RemoteObject
      </h1>

<!-- ============================== class summary ========================== -->
      <p class="description">
        
        

        Instances of RemoteObject represent the server-side counterpart of a client object
and are used to write operations into the next protocol message.

      </p>

<!-- ============================== constructor summary ==================== -->
      

<!-- ============================== properties summary ===================== -->
      

<!-- ============================== methods summary ======================== -->
      
        
        
        <table class="summaryTable" cellspacing="0" summary="A summary of the methods documented in the class RemoteObject.">
          <caption>Method Summary</caption>
          <thead>
            <tr>
              <th scope="col">Method Attributes</th>
              <th scope="col">Method Name and Description</th>
            </tr>
          </thead>
          <tbody>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/RemoteObject.html#call">call</a></b>(method, properties)
                </div>
                <div class="description">Instructs the remote object to call the given method.</div>
              </td>
            </tr>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/RemoteObject.html#notify">notify</a></b>(event, properties)
                </div>
                <div class="description">Notifies the remote object that an event of the given type occurred.</div>
              </td>
            </tr>
          
            <tr>
              <td class="attributes">&nbsp;</td>
              <td class="nameDescription">
                <div class="fixedFont"><b><a href="../symbols/RemoteObject.html#set">set</a></b>(property, value)
                </div>
                <div class="description">Sets the specified property of the remote object to the given value.</div>
              </td>
            </tr>
          
          </tbody>
        </table>
        

        
      
<!-- ============================== events summary ======================== -->
      

<!-- ============================== constructor details ==================== -->
      
      <div class="details"><a name="constructor"> </a>
        <div class="sectionTitle">
          Type Detail
        </div>

        <div class="fixedFont">&lt;private&gt; 
            <b>RemoteObject</b>()
        </div>

        <div class="description">
          The constructor is not public. Instances can
be obtained from <a href="../symbols/rap.html#.getRemoteObject">rap.getRemoteObject</a>.
          
        </div>

        


          
            <dl class="detailList">
            <dt class="heading">Parameters:</dt>
            
              <dt>
                 <b></b>
                
              </dt>
                <dd></dd>
            
            </dl>
          
          
          
            <dl class="detailList">
            <dt class="heading">Since:</dt>
              <dd>2.0</dd>
            </dl>
          
          
          
          
          

      </div>
      

<!-- ============================== field details ========================== -->
      

<!-- ============================== method details ========================= -->
      
        <div class="sectionTitle">
          Method Detail
        </div>
        
          <a name="call"> </a>
          <div class="fixedFont">

          
          <b>call</b>(method, properties)

          </div>
          <div class="description">
            Instructs the remote object to call the given method.
Calling this method will write a "call" operation into the message, which will to be sent to
the server within a few milliseconds. One message
may contain several "call" operations, if they are added consecutively.
            
          </div>

          

            
              <dl class="detailList">
              <dt class="heading">Parameters:</dt>
              
                <dt>
                  <span class="light fixedFont">{string}</span> <b>method</b>
                  
                </dt>
                <dd>The name of the method.</dd>
              
                <dt>
                  <span class="light fixedFont">{Object|null}</span> <b>properties</b>
                  <i>Optional</i>
                </dt>
                <dd>This object may contain any number of additional
properties/fields associated with the call. It may also be null or omitted.</dd>
              
              </dl>
            
            
            
            
            
            
            

          <hr />
        
          <a name="notify"> </a>
          <div class="fixedFont">

          
          <b>notify</b>(event, properties)

          </div>
          <div class="description">
            Notifies the remote object that an event of the given type occurred.
Notifications can only be sent for types that the server is currently listening for
(see <a href="../symbols/rap.html#.registerTypeHandler">rap.registerTypeHandler</a>, <b>handler.events</b>). If this is not the
case, no "notify" operation is written into the message and no request will be sent.
Otherwise the message will be sent to the server within a few milliseconds. One message
may contain several "notify" operations, if they are added consecutively.
            
          </div>

          

            
              <dl class="detailList">
              <dt class="heading">Parameters:</dt>
              
                <dt>
                  <span class="light fixedFont">{string}</span> <b>event</b>
                  
                </dt>
                <dd>The type of the event that occured.</dd>
              
                <dt>
                  <span class="light fixedFont">{Object|null}</span> <b>properties</b>
                  <i>Optional</i>
                </dt>
                <dd>This object may contain any number of additional
properties/fields associated with the event. It may also be null or omitted.</dd>
              
              </dl>
            
            
            
            
            
            
            

          <hr />
        
          <a name="set"> </a>
          <div class="fixedFont">

          
          <b>set</b>(property, value)

          </div>
          <div class="description">
            Sets the specified property of the remote object to the given value.
Calling this method multiple times for the same property will overwrite the previous value,
the message will not become longer. This method does not cause the message to be sent
immediately. Instead it will be sent the next time a "notify" or "call" operation is
written to the message.
            
          </div>

          

            
              <dl class="detailList">
              <dt class="heading">Parameters:</dt>
              
                <dt>
                  <span class="light fixedFont">{string}</span> <b>property</b>
                  
                </dt>
                <dd>The name of the property.</dd>
              
                <dt>
                  <span class="light fixedFont">{var}</span> <b>value</b>
                  
                </dt>
                <dd>The value of the property.</dd>
              
              </dl>
            
            
            
            
            
            
            

          
        
      

<!-- ============================== event details ========================= -->
      

      <hr />
    </div>


<!-- ============================== footer ================================= -->
    <div class="fineprint" style="clear:both">
      Copyright (c) EclipseSource and others 2013, 2019. All rights reserved.
    </div>
  </body>
</html>
