File

C:/GoDev/src/TCSTK-Angular/projects/tibco-tcstk/tc-messaging-lib/src/lib/components/eftl-message-sender/eftl-message-sender.component.ts

Description

Sample sender component for Tibco Web Messaging

See Tibco Cloud Messaging docs for parameter information

Implements

OnChanges

Example

<tcmsg-eftl-message-sender></tcmsg-eftl-message-sender>

Metadata

selector tcmsg-eftl-message-sender
styleUrls ./eftl-message-sender.component.css
templateUrl ./eftl-message-sender.component.html

Index

Properties
Methods
Inputs

Constructor

constructor(eFTLService: EFTLService)
Parameters :
Name Type Optional
eFTLService EFTLService No

Inputs

apiKey
Type : string

API Key

clientId
Type : string

Client Id for subscription

event
Type : string

Event Name

wssUrl
Type : string

Web messaging URL

Methods

ngOnChanges
ngOnChanges(changes: SimpleChanges)
Parameters :
Name Type Optional
changes SimpleChanges No
Returns : void

Properties

Public configure
Default value : () => {...}
Public connected
Default value : false
Public msg
Type : any
Default value : { contents: '' }
send
Default value : () => {...}
import {Component, Input, OnChanges, SimpleChanges} from '@angular/core';
import {EFTLService} from '../../services/e-ftl.service';

/**
 * Sample sender component for Tibco Web Messaging
 *
 * See Tibco Cloud Messaging docs for parameter information
 *
 *@example <tcmsg-eftl-message-sender></tcmsg-eftl-message-sender>
 */

@Component({
  selector: 'tcmsg-eftl-message-sender',
  templateUrl: './eftl-message-sender.component.html',
  styleUrls: ['./eftl-message-sender.component.css']
})
export class EftlMessageSenderComponent implements OnChanges {

  /**
   * Web messaging URL
   */
  @Input() wssUrl: string;

  /**
   * API Key
   */
  @Input() apiKey: string;

  /**
   * Client Id for subscription
   */
  @Input() clientId: string;

  /**
   * Event Name
   */
  @Input() event: string;

  public connected = false;
  public msg: any = { contents: '' };

  constructor(protected eFTLService: EFTLService) { }

  send = () => {
    this.eFTLService.sendMessage([ { name: 'message', value: this.msg.contents }], this.event).subscribe(
      next => {
        console.log(next);
        this.msg.contents = undefined;
      }
    );
  }

  public configure = () => {
    if (!this.eFTLService.connection) {
      this.eFTLService.connect(this.wssUrl, this.apiKey, this.clientId).subscribe(
        next => {
          this.connected = true;
        }
      );
    }
  }

  ngOnChanges(changes: SimpleChanges): void {
    if (changes.wssUrl.currentValue && changes.apiKey.currentValue && changes.clientId.currentValue) {
      this.configure();
    }
  }

}
<div class="tcs-message-pane" fxLayout="column" style="overflow: hidden;">
  <tc-tibco-cloud-widget-header fxFlex="nogrow" [headerText]="'Send Messages'" [icon]="'tcs-collaboration-feed'"
                                [toolbarButtons]="" [showHeader]="true"></tc-tibco-cloud-widget-header>

  <div fxFlex style="height: 100%" fxLayout="row" fxLayoutAlign="center end">
    <div fxFlex fxLayout="row" fxLayoutAlign="start start" style="padding: 5px;">
      <mat-form-field fxFlex>
        <input matInput placeholder="Input" [(ngModel)]="msg.contents">
      </mat-form-field>
      <button mat-button *ngIf="connected" (click)="send()">SEND</button>
    </div>
  </div>
</div>

./eftl-message-sender.component.css

.tcs-message-pane {
  border-radius: 3px;
  box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.33);
  background-color: #ffffff;
  height: 100%;
}
Legend
Html element
Component
Html element with directive

result-matching ""

    No results matching ""