This chapter provides a short description of various CG widgets intended to be provided with a basic client API. These widgets can directly be used by end users and Glass applications but they are also used as reference implementation and code example for developing custom widgets. As General guideline Content Glass is a platform or a framework for creating state oriented sharing apps and not out of the box service. You can read more about the general widget types in the Content Widgets section.

Note: The list below does not pretend to present a final list of widgets. Many more will be created in the future so they can be used either directly or as reference widgets that can be shaped to more specific needs.

Basic Widgets

Basic widgets are usually widgets with basic functionality that is mainly involved with presentation of data and does not involve much (or any) application logic.

HTMLWidget

A widget that lets the user enter html script for rendering some view. The HTML is filtered to prevent active content from running.  This widget is a reference implementation for other script based widgets that may be implemented in the future. For example: SVG (Scalable Vector Graphics) Widget.

IFrameBox

This widget draws an IFrame (which allows a visual HTML Browser window to be split into segments) linked to URL provided by the user. The widget is suitable for Web browser environment as well as other environments where Web browser can be embedded in an app.

LayoutWidget

Layout widget actually composes features from other basic widgets and lets the user select a layout and then for each cell in the layout select the graphic element to use. For example, a layout may include text on the left, image on the right and video at the bottom. One of the cases where layout widget may be very useful is for arranging Device Proxy widgets (see Device Glass) in a way that may resemble web pages, which may be very useful for the idea of Desktop Websites (see below)

NoteWidget

Note widget provides a simple way to share textual written notes. Note ‘paper’ can have many shapes and styles and it is possible for 3’rd party to add their own note styles.

VoiceNote and VideoNote

These widgets let users share notes or comments or instructions using voice or video recordable data. Voice notes for example are very useful for sharing information with drivers using car’s infotainment system. Also in the case of people with disabilities, such as blind or people that can’t write for some reason, voice notes may be very useful. 

PDFReader

This widget lets user set a link to PDF file or load PDF from local PC and present it on the widget using PDF reader. P2P data channel can be used when available, to provide synchronization of reader operations and events which allows two or more users to read the document together. This includes the ability for one user to open a locally stored document while another user gets the document for reading without being installed locally.

PictureBox

This widget lets users add their own picture or image from their PC and present the image (picture) on the widget. When available (e.g. WebRTC supported on browser) the widget allows users to take their own picture and if P2P is also supported take a picture of remote peer user. Advanced version may allow picture effects and frame selection either offline or in real-time with friends whenever P2P is enabled.

ProfileCapsule

This widget lets users show summary of profile details possibly with profile image. The widget is connected with APIs of PIDN networks and lets the user fetch profile information that can then be shared by the widget. One can think of profile capsule as a dynamic version of business card that can be shared on various contexts.

SlideShow Sharing

This family of widgets contains players for showing slide shows of various formats. For example Slideshare files. The user sets a link to the slide-show resources so that the widget can be used to share Slide presentations. When P2P is available, a P2P data channel can be used for synchronizing player’s operations and events so that watching the slide-show together is possible. The widget may be useful in various situations of remote training or remote consulting.

TextBox

This widget is a small box for writing plain text. Depending on device and client library P2P may be enabled to provide real-time collaboration of text writing.

Text Editor

This widget is an editor-based widget small box for writing plain text and styled text. Depending on device and client library P2P may be enabled to provide real-time collaboration of text editing.

VideoBox

This widget lets the user paste a link to a video. The video can then be presented on a player. P2P channel allows synchronization of video control operations to provide co watching

Connector Widgets

Connector widgets are mainly used for real-time collaboration. Connectors, as their name implies, use the P2P module for connecting peers in real time for various purposes.

ChatBox

A widget that provides real-time text, voice and video chat. Text chat can also be handled off-line so that any peer can leave a message that will be available to other peers next time they visit the page (or the context), or once refreshing the page.

CoBrowsing

A connector that allows co-browsing between peers. Once turned on, a new browser window/frame is opened for each of the connected peers and using P2P channel the URL of each peer’s browser is distributed to other peers letting each peer see the browsing of other peers in real time.  CoBrowsing can be used for fun but it is expected to be most useful for Virtual Consulting sessions, for example when shopping advisor shows products in a Web store to shopper.

CoDrawing

This connector provides a white board for co-drawing. The connector lets peers pass ideas to one another through simple drawing.

FormConnector & TextConnector

The form connector is a widget that can be attached to HTML web forms elements and as result making a form collaborative so that two people can fill the form together. For example: registration to service is one of the most common form tasks. Many people see the registration process as a barrier for using a service. With FormConnector filling the form can be guided and in fact can be performed together with another user that understands the form application. This widget can be of great help when used with friends, and is expected to be most useful in cases of remote support and virtual consulting sessions. The widget works on the principle of binding with the events generated by HTML form elements. These events can be used to identify user activity on the form and since users are connected over P2P data channel, it is possible to send message to other peers, with information that will cause the receiver side to imitate the form operation. For example assuming user A write some word in the firm field, this operation is triggering an event of “Data Change”. The event is captured by the Widget, and the widget as result send to other peers (User B for example) a message that tell the receiving peer to change the corresponding form field on receiver side.

TextConnector widget is a simpler version of FormConnector to provide real-time co- writing for a single text field.

ShareScreens

This widget uses screen capturing technology together with P2P video stream in order to share one's own screen with connected peers. 

Application Widgets

Application widgets are usually more sophisticated than basic widgets and contain some application logic.

FloatingForm

FloatingForm widget is an example of a Widget that encapsulates full application for sharing forms where users can enter data. For example, a form can be used to present users with a survey on some subject. The users with whom the widget is shared can answer the survey and the data will be stored on a shared database.

MonitoringBox

Monitoring widget is capable of receiving notifications regarding emails targeted toward a specific peer and the peer user can watch the notifications – like a minimal inbox. MonitoringBox is usually cooperating with an activity involved by other widgets. For example, when an answer is provided on QuestionAnswer widget, an event is created to notify the peer about a new answer. These notifications can be watched in MonitoringBox.

ProfilePlaylist

Create Playlist of videos from posts of Facebook, Google+ and other social networks. This is a reference implementation that shows how widgets can cooperate with PIDNs for implementing various apps that combine CG capability and social-networks capability together.

QuestionAnswer

Provide Question/Answer box with an ability to trigger notifications that can be monitored by MonitoringBox.

Content MonitorRobot

The content monitor robot is a Widget user can place on a webpage or some App view, and a binding is made between the context and the widget so that an instance of the widget works in the background (also when user is not intact with the context) in order to monitor the state of the context and notify the user when some event or new content occur. For example a robot widget can be set on a dynamically change webpage and instruct to search for specific word in the page title. The robot will sample the page each given period and if the title include the designated word, the robot will notify the user.   

VirtualConsulting

This widget is created by a consultant and/or online advisor on top of some website glass. The widget has two faces: one for the advisor and another for end user. Users join the consulting widget’s groups using Advisors Block that lets them choose among available advisors. VirtualConsulting widgets become available after selecting an advisor.

Once widgets are available, user can post queries to advisors. Queries are questions or requests for help. The advisor may answer a query and/or get into live session with the user.

Session between user and advisor may combine a set of online collaboration tools that let the advisor serve and help end user query.

This widget may be useful for example on eCommerce websites or company websites. Unlike the familiar chat widget that many companies add today to their website, VirtualCosulting is not closed in the scope of the website owner. Instead it is open to the community. Advisors can come from the community. The tools advisors can use for service help are far from merely chat. They may include: CoWriting, CoReading of documents, CoBrowsing, CoDrawing, Screen Share, Chat and many other collaboration tools.  

 Advisors may act voluntarily, as will probably happen on commercial websites but may also act on a communion based as will probably happen with eCommerce websites. 

You can read more about virtual sonsulting in the Virtual Consulting section. 

Service Port Widgets

Service port widgets act as proxy of personal interaction with service providers. Those widgets provide interactive linkage for either getting or setting personal data related with a service.

There are a number of advantages for using Service Box widgets over ordinary use of personal account data within SaaS:

  1. Going  social directly from company website: companies that use social networks find themselves dealing with virtual assets managed outside of their own website, for example Company Page on LinkedIn or Facebook that keep users detached from their actual website. In addition, companies are using social-network for commercial purpose while actually people use them for social activity.  With ServiceBox companies are able to generate social engagement directly from their own website (their own virtual asset).  Companies are not restricted by social-network policy. Users are coming to the source website instead of being interrupted in their social act. And most important the engagement can involve personal and private information, knowing that this information is not shared over any other 3’rd party social networks.
  2. Personal Data Consolidation: Today each service provider manages its own user accounts. Personal data is distributed among service providers without being able to be linked with each other and create association. A ServiceBox may be perceived as a portion of user account, something that is capable of representing personal information on the outside. Different ServiceBox widgets related with the same user, that are related with different service providers provide then a collection of personal information. If we are capable to unify these data portions by some meta service we get a system where personal information from various sources (service providers) can be consolidated and managed in one place.  CG is a kind of meta service that can be used to combine portions of personal information by providing a Content Linkage between Service Proxy widgets. Fig. 34A is used to demonstrate this idea.
  3. Personal data can be stored externally: ServiceBox widgets support the Computational SaaS paradigm where data processed by a service is stored on a storage facility managed by user and the service provides the computation and data processing functionality only without holding personal data in service repository. Accordingly service providers who want to assimilate this paradigm for some parts of their service can use ServiceBox widgets as an adapter between the data that is stored in user’s own storage, and the processing part that is provided by the actual service. One can think of ServiceBox as a type of Data Connector that provides service with access to personal data, where the service is responsible to perform the computation and store the processed data on a personal storage as supported by Storage module in the core of ServiceBox widget. (See Computation SaaS section below for more details).

Resources Proxies Widgets

‘Resource proxy widget’ is a term that is used to define a family of widgets used for representing desktop resources in order to be shared by Device Glass. These widgets provide a representation of the resource so that it can be accessed or operated remotely by other devices than the desktop on which the resource reside. Below are two examples:

 PrinterProxy: A widget that represents printer resource. The widget provides access from a remote device to the printer located on some desktop, outside of LAN and without taking over the desktop where the printer resides. Using the widget it is possible to send print tasks to the printer, so that it can be used by other devices through a connection with PrinterProxy.   

FileProxy: A widgets that represent file resource. The widget enables files view, and possibly edit. This way a representation of the file can be shared though a connection with FileProxy.

Virtual Widget

Virtual Widgets are used to represent a linkage between two or more widgets so that this linkage can be stored as an addition semantic of CG Sphere. In other words, once linkage is established it be embody in the form of widget that can be stored on CG Storage and later present to users and shared by peers. CG provides abstract implementations of virtual widgets that can be used to represent and store content linkage.  You can read more about the concept of VirtualWidgets in the Social Search Engine section.