⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 resulttab.java

📁 SANCHO
💻 JAVA
字号:
/* * Copyright (C) 2004-2005 Rutger M. Ovidius for use with the sancho project. * See LICENSE.txt for license information. */package sancho.view.search.result;import java.util.Observable;import java.util.Observer;import org.eclipse.swt.SWT;import org.eclipse.swt.custom.CTabFolder;import org.eclipse.swt.custom.CTabItem;import org.eclipse.swt.events.DisposeEvent;import org.eclipse.swt.events.DisposeListener;import org.eclipse.swt.layout.GridData;import org.eclipse.swt.widgets.Composite;import org.eclipse.swt.widgets.Label;import sancho.core.Sancho;import sancho.model.mldonkey.ResultCollection;import sancho.model.mldonkey.utility.SearchWaiting;import sancho.utility.ObjectMap;import sancho.view.utility.AbstractTab;import sancho.view.utility.SResources;import sancho.view.utility.WidgetFactory;import sancho.view.viewer.CustomTableViewer;import sancho.view.viewer.GView;public class ResultTab implements Observer, Runnable, DisposeListener {  private boolean hasTable;  private CTabFolder cTabFolder;  private CTabItem cTabItem;  private GView gView;  private boolean paused;  private int searchId;  private Composite searchingComposite;  private Label searchingLabel;  private String searchString;  private AbstractTab searchTab;  private ResultViewFrame viewFrame;  public ResultTab(ResultViewFrame viewFrame, CTabFolder cTabFolder, AbstractTab searchTab, int searchId,      String string) {    this.searchString = string;    this.cTabFolder = cTabFolder;    this.searchId = searchId;    this.searchTab = searchTab;    this.viewFrame = viewFrame;    createContent();    if (Sancho.hasCollectionFactory())      viewFrame.getCore().getResultCollection().addObserver(this);    viewFrame.onCTabFolderSelection();  }  private void createContent() {    cTabItem = new CTabItem(cTabFolder, SWT.FLAT);    viewFrame.updateCLabelText(SResources.getString("t.search.results"));    cTabItem.addDisposeListener(new DisposeListener() {      public void widgetDisposed(DisposeEvent e) {        viewFrame.onCTabFolderSelection();        if (cTabFolder.getItemCount() == 0)          viewFrame.updateCLabelText(SResources.getString("t.search.results"));      }    });    cTabItem.addDisposeListener(this);    cTabItem.setText(searchString);    cTabItem.setToolTipText(SResources.getString("s.r.searchingFor") + searchString);    cTabItem.setImage(SResources.getImage("search_small"));    cTabItem.setData(this);    searchingComposite = new Composite(cTabFolder, SWT.NONE);    searchingComposite.setLayout(WidgetFactory.createGridLayout(1, 5, 5, 5, 5, false));    searchingLabel = new Label(searchingComposite, SWT.NONE);    searchingLabel.setText(SResources.getString("s.r.searching"));    searchingLabel.setLayoutData(new GridData(GridData.VERTICAL_ALIGN_BEGINNING));    cTabItem.setControl(searchingComposite);    cTabFolder.setSelection(cTabItem);  }  private void createTable() {    cTabItem.setImage(SResources.getImage(searchId < 0 ? "jigle" : "search_complete"));    this.gView = new ResultTableView(viewFrame, cTabItem, searchTab);    cTabItem.setControl(((CustomTableViewer) gView.getViewer()).getTable());  }  public boolean isPaused() {    return paused;  }  public void pause() {    this.paused = true;    if (Sancho.hasCollectionFactory()) {      ObjectMap objectMap = (ObjectMap) viewFrame.getCore().getResultCollection().get(searchId);      if (objectMap != null)        objectMap.deleteObservers();    }  }  public void run() {    if (cTabItem.isDisposed() || this.paused || !Sancho.hasCollectionFactory())      return;    if (searchingLabel != null && !searchingLabel.isDisposed()) {      searchingLabel.dispose();      searchingComposite.dispose();    }    this.createTable();    if (Sancho.hasCollectionFactory())      gView.getViewer().setInput(viewFrame.getCore().getResultCollection().get(searchId));  }  public void unPause() {    this.paused = false;    if (Sancho.hasCollectionFactory() && gView != null && !gView.isDisposed())      gView.getViewer().setInput(viewFrame.getCore().getResultCollection().get(searchId));  }  public void update(Observable o, final Object arg) {    if (cTabItem == null || cTabItem.isDisposed() || isPaused())      return;    if (arg instanceof SearchWaiting) {      final SearchWaiting searchWaiting = (SearchWaiting) arg;      if (searchWaiting.getId() == searchId && searchingLabel != null && !searchingLabel.isDisposed())        searchingLabel.getDisplay().asyncExec(new Runnable() {          public void run() {            if (searchingLabel != null && !searchingLabel.isDisposed()) {              searchingLabel.setText(SResources.getString("s.r.searchesWaiting")                  + searchWaiting.getNumWaiting());              searchingLabel.getParent().layout();            }          }        });    }    //    else if (arg instanceof JigleSearchComplete) {    //      final JigleSearchComplete jigleSearchComplete = (JigleSearchComplete) arg;    //      if (jigleSearchComplete.getSearchID() == searchId && searchingLabel != null    //          && !searchingLabel.isDisposed())    //        searchingLabel.getDisplay().asyncExec(new Runnable() {    //          public void run() {    //            if (searchingLabel != null && !searchingLabel.isDisposed())    //              searchingLabel.setText(Resources.getString("s.r.jigleComplete") + " ("    //                  + jigleSearchComplete.getCode() + ")");    //          }    //        });    //    }    if (!hasTable && gView == null && ((ResultCollection) o).containsKey(searchId)) {      if (Sancho.hasCollectionFactory() && viewFrame.getCore().getResultCollection() != null)        viewFrame.getCore().getResultCollection().deleteObserver(this);      hasTable = true;      cTabFolder.getDisplay().asyncExec(this);    }  }  public void widgetDisposed(DisposeEvent e) {    if (Sancho.hasCollectionFactory()) {      viewFrame.getCore().getResultCollection().deleteObserver(this);      viewFrame.getCore().getResultCollection().closeSearch(searchId);    }  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -