Package org.gudy.azureus2.ui.swt.views.table.impl

Source Code of org.gudy.azureus2.ui.swt.views.table.impl.TableViewTab

package org.gudy.azureus2.ui.swt.views.table.impl;

import java.util.Map;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Menu;

import org.gudy.azureus2.core3.internat.MessageText;
import org.gudy.azureus2.core3.util.IndentWriter;
import org.gudy.azureus2.ui.swt.views.AbstractIView;
import org.gudy.azureus2.ui.swt.views.IViewExtension;
import org.gudy.azureus2.ui.swt.views.table.TableViewSWT;

import com.aelitis.azureus.ui.common.ToolBarEnabler;

public abstract class TableViewTab<DATASOURCETYPE>
  extends AbstractIView
  implements IViewExtension, ToolBarEnabler
{
  private TableViewSWT<DATASOURCETYPE> tv;
  private Object parentDataSource;
  private final String propertiesPrefix;
  private Composite composite;

 
  public TableViewTab(String propertiesPrefix) {
    this.propertiesPrefix = propertiesPrefix;
  }
 
  public TableViewSWT<DATASOURCETYPE> getTableView() {
    return tv;
  }

  public final void initialize(Composite composite) {
    tv = initYourTableView();
    if (parentDataSource != null) {
      tv.setParentDataSource(parentDataSource);
    }
    Composite parent = initComposite(composite);
    tv.initialize(parent);
    if (parent != composite) {
      this.composite = composite;
    } else {
      this.composite = tv.getComposite();
    }
   
    tableViewTabInitComplete();
  }
 
  public void tableViewTabInitComplete() {
  }

  public Composite initComposite(Composite composite) {
    return composite;
  }

  public abstract TableViewSWT<DATASOURCETYPE> initYourTableView();

  public final void dataSourceChanged(Object newDataSource) {
    this.parentDataSource = newDataSource;
    if (tv != null) {
      tv.setParentDataSource(newDataSource);
    }
  }

  public final void refresh() {
    if (tv != null) {
      tv.refreshTable(false);
    }
  }

  // @see org.gudy.azureus2.ui.swt.views.AbstractIView#delete()
  public final void delete() {
    if (tv != null) {
      tv.delete();
    }
    super.delete();
  }

  // @see org.gudy.azureus2.ui.swt.views.AbstractIView#getData()
  public final String getData() {
    return getPropertiesPrefix() + ".title.short";
  }

  public final String getFullTitle() {
    return MessageText.getString(getPropertiesPrefix() + ".title.full");
  }

  // @see org.gudy.azureus2.ui.swt.views.AbstractIView#generateDiagnostics(org.gudy.azureus2.core3.util.IndentWriter)
  public final void generateDiagnostics(IndentWriter writer) {
    if (tv != null) {
      tv.generate(writer);
    }
  }
 
  // @see org.gudy.azureus2.ui.swt.views.AbstractIView#getComposite()
  public Composite getComposite() {
    return composite;
  }
 
  public boolean toolBarItemActivated(String itemKey) {
    if (itemKey.equals("editcolumns")) {
      if (tv instanceof TableViewSWTImpl) {
        ((TableViewSWTImpl)tv).showColumnEditor();
        return true;
      }
    }
    return false;
  }
 
  public void refreshToolBar(Map<String, Boolean> list) {
    list.put("editcolumns", true);
  }

  public String getPropertiesPrefix() {
    return propertiesPrefix;
  }
 
  public Menu getPrivateMenu() {
    return null;
  }
 
  public void viewActivated() {
    // cheap hack.. calling isVisible freshens table's visible status (and
    // updates subviews)
    if (tv instanceof TableViewSWTImpl) {
      ((TableViewSWTImpl)tv).isVisible();
    }
  }
 
  public void viewDeactivated() {
    if (tv instanceof TableViewSWTImpl) {
      ((TableViewSWTImpl)tv).isVisible();
    }
  }
}
TOP

Related Classes of org.gudy.azureus2.ui.swt.views.table.impl.TableViewTab

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.