Package com.cxy.redisclient.presentation.pubsub

Source Code of com.cxy.redisclient.presentation.pubsub.Publish

package com.cxy.redisclient.presentation.pubsub;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

import org.eclipse.swt.SWT;
import org.eclipse.swt.custom.CTabFolder;
import org.eclipse.swt.custom.CTabItem;
import org.eclipse.swt.custom.SashForm;
import org.eclipse.swt.events.ControlAdapter;
import org.eclipse.swt.events.ControlEvent;
import org.eclipse.swt.events.SelectionAdapter;
import org.eclipse.swt.events.SelectionEvent;
import org.eclipse.swt.graphics.Image;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;
import org.eclipse.swt.widgets.Text;

import com.cxy.redisclient.domain.Server;
import com.cxy.redisclient.integration.I18nFile;
import com.cxy.redisclient.presentation.RedisClient;
import com.cxy.redisclient.presentation.Tool;
import com.cxy.redisclient.presentation.component.EditListener;
import com.cxy.redisclient.service.PubSubService;
import com.cxy.redisclient.service.ServerService;

public class Publish  implements Tool{
  private CTabFolder tabFolder;
  private int id;
  private Server server;
  private ServerService service = new ServerService();
  private PubSubService publish = new PubSubService();
 
  private CTabItem tbtmNewItem;
  private Button btnNewButton;
  private Label label;
  private Label label1;
  private TableColumn tblclmnNewColumn_1;
  private TableColumn tblclmnNewColumn_2;
  private TableColumn tblclmnNewColumn;
  private Composite composite_3;
 
  public Publish(CTabFolder tabFolder, int id) {
    this.tabFolder = tabFolder;
    this.id = id;
  }
  public CTabItem init(){
    server = service.listById(id);
    Image pubImage = new Image(tabFolder.getShell().getDisplay(),
        getClass().getResourceAsStream("/publish.png"));
   
    tbtmNewItem = new CTabItem(tabFolder, SWT.NONE);
    tbtmNewItem.setShowClose(true);
    composite_3 = new Composite(tabFolder, SWT.NONE);
    tbtmNewItem.setControl(composite_3);
    composite_3.setLayout(new GridLayout(1, false));
    tbtmNewItem.setText(server.getName() +" "+RedisClient.i18nFile.getText(I18nFile.PUBLISH));
    tbtmNewItem.setImage(pubImage);
   
    SashForm sashForm_2 = new SashForm(composite_3, SWT.NONE);
    sashForm_2.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
   
    Composite composite_4 = new Composite(sashForm_2, SWT.NONE);
    composite_4.setLayout(new GridLayout(1, false));
   
    Composite composite_5 = new Composite(composite_4, SWT.NONE);
    composite_5.setLayout(new GridLayout(3, false));
    composite_5.setLayoutData(new GridData(SWT.FILL, SWT.TOP, true, false, 1, 1));
   
    label = new Label(composite_5, SWT.NONE);
    label.setLayoutData(new GridData(SWT.LEFT, SWT.CENTER, false, false, 1, 1));
    label.setText(RedisClient.i18nFile.getText(I18nFile.CHANNEL));
   
    final Text channel = new Text(composite_5, SWT.BORDER);
    channel.setLayoutData(new GridData(SWT.FILL, SWT.CENTER, true, false, 1, 1));
    channel.setBounds(0, 0, 73, 21);
    channel.addControlListener(new ControlAdapter() {
      @Override
      public void controlResized(ControlEvent e) {
        channel.setFocus();
      }
    });
   
    Composite composite_6 = new Composite(composite_4, SWT.NONE);
    composite_6.setLayout(new GridLayout(2, false));
    composite_6.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
   
    label1 = new Label(composite_6, SWT.NONE);
    label1.setLayoutData(new GridData(SWT.LEFT, SWT.TOP, false, false, 1, 1));
    label1.setText(RedisClient.i18nFile.getText(I18nFile.MESSAGE));
   
    final Text message = new Text(composite_6, SWT.BORDER | SWT.WRAP | SWT.V_SCROLL | SWT.MULTI);
    message.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true, 1, 1));
    message.setBounds(0, 0, 73, 21);
   
    final Table table = new Table(sashForm_2, SWT.BORDER | SWT.FULL_SELECTION);
    table.setHeaderVisible(true);
    table.setLinesVisible(true);
    EditListener listener = new EditListener(table, false, true);
    table.addListener(SWT.MouseDown, listener);
   
    tblclmnNewColumn = new TableColumn(table, SWT.NONE);
    tblclmnNewColumn.setWidth(100);
    tblclmnNewColumn.setText(RedisClient.i18nFile.getText(I18nFile.TIME));
   
    tblclmnNewColumn_1 = new TableColumn(table, SWT.NONE);
    tblclmnNewColumn_1.setWidth(100);
    tblclmnNewColumn_1.setText(RedisClient.i18nFile.getText(I18nFile.CHANNEL));
   
    tblclmnNewColumn_2 = new TableColumn(table, SWT.NONE);
    tblclmnNewColumn_2.setWidth(100);
    tblclmnNewColumn_2.setText(RedisClient.i18nFile.getText(I18nFile.MESSAGE));
    sashForm_2.setWeights(new int[] {1, 2});
   
    btnNewButton = new Button(composite_5, SWT.NONE);
    btnNewButton.setLayoutData(new GridData(SWT.RIGHT, SWT.CENTER, false, false, 1, 1));
    btnNewButton.setBounds(0, 0, 75, 25);
    btnNewButton.setText(RedisClient.i18nFile.getText(I18nFile.PUBLISH));
    btnNewButton.addSelectionListener(new SelectionAdapter() {
      @Override
      public void widgetSelected(SelectionEvent e) {
        if(channel.getText().length() > 0 && message.getText().length() > 0){
          publish.publish(id, channel.getText(), message.getText());
          TableItem item = new TableItem(table, SWT.None);
          SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS", Locale.getDefault());
          String time = df.format(new Date());
          String[] str = new String[]{time, channel.getText(), message.getText()};
          item.setText(str);
          table.setSelection(item);
          channel.selectAll();
          message.selectAll();
          channel.setFocus();
        }
       
      }
    });
   
    tabFolder.setSelection(tbtmNewItem);
    channel.setFocus();
   
    return tbtmNewItem;
  }
  @Override
  public void refreshLangUI(){
    tbtmNewItem.setText(server.getName() +" "+RedisClient.i18nFile.getText(I18nFile.PUBLISH));
    btnNewButton.setText(RedisClient.i18nFile.getText(I18nFile.PUBLISH));
    label.setText(RedisClient.i18nFile.getText(I18nFile.CHANNEL));
    label1.setText(RedisClient.i18nFile.getText(I18nFile.MESSAGE));
    tblclmnNewColumn.setText(RedisClient.i18nFile.getText(I18nFile.TIME));
    tblclmnNewColumn_1.setText(RedisClient.i18nFile.getText(I18nFile.CHANNEL));
    tblclmnNewColumn_2.setText(RedisClient.i18nFile.getText(I18nFile.MESSAGE));
    composite_3.pack();
  }
  @Override
  public int getId() {
    return id;
  }
  @Override
  public CTabItem getTbtmNewItem() {
    return tbtmNewItem;
  }
}
TOP

Related Classes of com.cxy.redisclient.presentation.pubsub.Publish

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.