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

📄 tableviewswtimpl.java

📁 java 文件下载器。可自定义
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
		}

		int numSWTColumns = table.getColumnCount();
		int iNewLength = numSWTColumns - (bSkipFirstColumn ? 1 : 0);
		columnsOrdered = new TableColumnCore[iNewLength];
		System.arraycopy(tmpColumnsOrdered, 0, columnsOrdered, 0, iNewLength);
		columnsVisible = new boolean[tableColumns.length];
		ColumnSelectionListener columnSelectionListener = new ColumnSelectionListener();
		int swtColumnPos = bSkipFirstColumn ? 1 : 0;
		for (int i = 0; i < tableColumns.length; i++)
		{
			int position = tableColumns[i].getPosition();
			if (position == -1 || !tableColumns[i].isVisible())
				continue;
			columnsVisible[i] = true;
			String sName = tableColumns[i].getName();
			if (swtColumnPos >= numSWTColumns)
			{
				Debug.out((new StringBuilder()).append("Incorrect table column setup, skipping column '").append(sName).append("', position=").append(swtColumnPos).append(";numCols=").append(numSWTColumns).toString());
				continue;
			}
			TableColumn column = table.getColumn(swtColumnPos);
			try
			{
				column.setMoveable(true);
			}
			catch (NoSuchMethodError e) { }
			column.setAlignment(TableColumnSWTUtils.convertColumnAlignmentToSWT(tableColumns[i].getAlignment()));
			Messages.setLanguageText(column, tableColumns[i].getTitleLanguageKey());
			column.setWidth(tableColumns[i].getWidth());
			if (tableColumns[i].getMinWidth() == tableColumns[i].getMaxWidth() && tableColumns[i].getMinWidth() > 0)
				column.setResizable(false);
			column.setData("TableColumnCore", tableColumns[i]);
			column.setData("configName", (new StringBuilder()).append("Table.").append(sTableID).append(".").append(sName).toString());
			column.setData("Name", sName);
			column.addControlListener(resizeListener);
			column.addListener(13, columnSelectionListener);
			swtColumnPos++;
		}

		TableColumnManager tcManager = TableColumnManager.getInstance();
		String sSortColumn = tcManager.getDefaultSortColumnName(sTableID);
		if (sSortColumn == null || sSortColumn.length() == 0)
			sSortColumn = sDefaultSortOn;
		TableColumnCore tc = tcManager.getTableColumnCore(sTableID, sSortColumn);
		if (tc == null && tableColumns.length > 0)
			tc = tableColumns[0];
		sortColumn = tc;
		fixAlignment(tc, true);
		changeColumnIndicator();
		if (SWT.getVersion() >= 3100)
		{
			Listener columnResizeListener = COLUMN_CLICK_DELAY ? new Listener() {

				final TableViewSWTImpl this$0;

				public void handleEvent(Event event)
				{
					lLastColumnResizeOn = System.currentTimeMillis();
				}

			
			{
				this$0 = TableViewSWTImpl.this;
				super();
			}
			} : null;
			TableColumn columns[] = table.getColumns();
			for (int i = 0; i < columns.length; i++)
			{
				TableColumn column = columns[i];
				column.addListener(10, columnMoveListener);
				if (COLUMN_CLICK_DELAY)
					column.addListener(11, columnResizeListener);
			}

		}
		columnVisibilitiesChanged = true;
	}

	public void fixAlignment(TableColumnCore tc, boolean sorted)
	{
		if (Constants.isOSX)
		{
			if (table.isDisposed() || tc == null)
				return;
			int columnOrder[] = table.getColumnOrder();
			int i = tc.getPosition() - (bSkipFirstColumn ? 1 : 0);
			if (i < 0 || i >= columnOrder.length)
				return;
			TableColumn swtColumn = table.getColumn(columnOrder[i]);
			if (swtColumn != null)
				if (swtColumn.getAlignment() == 0x20000 && sorted)
					swtColumn.setText((new StringBuilder()).append("   ").append(swtColumn.getText()).append("   ").toString());
				else
					swtColumn.setText(swtColumn.getText().trim());
		}
	}

	public Menu createMenu()
	{
		if (!isMenuEnabled())
		{
			return null;
		} else
		{
			Menu menu = new Menu(tableComposite.getShell(), 8);
			MenuBuildUtils.addMaintenanceListenerForMenu(menu, new org.gudy.azureus2.ui.swt.MenuBuildUtils.MenuBuilder() {

				final TableViewSWTImpl this$0;

				public void buildMenu(Menu menu)
				{
					fillMenu(menu);
					addThisColumnSubMenu(getColumnNo(iMouseX));
				}

			
			{
				this$0 = TableViewSWTImpl.this;
				super();
			}
			});
			return menu;
		}
	}

	public void fillMenu(Menu menu)
	{
		Object listeners[] = listenersMenuFill.toArray();
		for (int i = 0; i < listeners.length; i++)
		{
			TableViewSWTMenuFillListener l = (TableViewSWTMenuFillListener)listeners[i];
			l.fillMenu(menu);
		}

		MenuItem itemChangeTable = new MenuItem(menu, 8);
		Messages.setLanguageText(itemChangeTable, "MyTorrentsView.menu.editTableColumns");
		Utils.setMenuItemImage(itemChangeTable, "columns");
		itemChangeTable.addListener(13, new Listener() {

			final TableViewSWTImpl this$0;

			public void handleEvent(Event e)
			{
				showColumnEditor();
			}

			
			{
				this$0 = TableViewSWTImpl.this;
				super();
			}
		});
		menuThisColumn = new Menu(tableComposite.getShell(), 4);
		MenuItem itemThisColumn = new MenuItem(menu, 64);
		itemThisColumn.setMenu(menuThisColumn);
		boolean enable_items = table != null && table.getSelection().length > 0;
		org.gudy.azureus2.plugins.ui.tables.TableContextMenuItem items[] = TableContextMenuManager.getInstance().getAllAsArray(sTableID);
		org.gudy.azureus2.plugins.ui.menus.MenuItem menu_items[] = null;
		if ("MySeeders".equals(sTableID) || "MyTorrents".equals(sTableID))
			menu_items = MenuItemManager.getInstance().getAllAsArray("download_context");
		else
			menu_items = MenuItemManager.getInstance().getAllAsArray((String)null);
		if (items.length > 0 || menu_items.length > 0)
		{
			new MenuItem(menu, 2);
			if (menu_items != null)
				MenuBuildUtils.addPluginMenuItems(getComposite(), menu_items, menu, true, true, new org.gudy.azureus2.ui.swt.MenuBuildUtils.MenuItemPluginMenuControllerImpl(getSelectedDataSources(false)));
			if (items.length > 0)
				MenuBuildUtils.addPluginMenuItems(getComposite(), items, menu, true, enable_items, new org.gudy.azureus2.ui.swt.MenuBuildUtils.PluginMenuController() {

					final TableViewSWTImpl this$0;

					public Listener makeSelectionListener(org.gudy.azureus2.plugins.ui.menus.MenuItem plugin_menu_item)
					{
						return new TableSelectedRowsListener(plugin_menu_item) {

							final org.gudy.azureus2.plugins.ui.menus.MenuItem val$plugin_menu_item;
							final 25 this$1;

							public boolean run(TableRowCore rows[])
							{
								if (rows.length != 0)
									((TableContextMenuItemImpl)plugin_menu_item).invokeListenersMulti(rows);
								return true;
							}

					
					{
						this$1 = 25.this;
						plugin_menu_item = menuitem;
						super(x0);
					}
						};
					}

					public void notifyFillListeners(org.gudy.azureus2.plugins.ui.menus.MenuItem menu_item)
					{
						((TableContextMenuItemImpl)menu_item).invokeMenuWillBeShownListeners(getSelectedRows());
					}

			
			{
				this$0 = TableViewSWTImpl.this;
				super();
			}
				});
		}
	}

	void showColumnEditor()
	{
		TableRowCore focusedRow = getFocusedRow();
		if (focusedRow == null)
			focusedRow = getRow(0);
		(new TableColumnSetupWindow(classDataSourceType, sTableID, focusedRow, TableStructureEventDispatcher.getInstance(sTableID))).open();
	}

	private void addThisColumnSubMenu(int iColumn)
	{
		if (menuThisColumn == null || menuThisColumn.isDisposed())
			return;
		MenuItem oldItems[] = menuThisColumn.getItems();
		for (int i = 0; i < oldItems.length; i++)
			oldItems[i].dispose();

		MenuItem item = menuThisColumn.getParentItem();
		if (iColumn == -1)
		{
			item.setEnabled(false);
			item.setText(MessageText.getString("GenericText.column"));
			return;
		}
		item.setEnabled(true);
		final TableColumn tcColumn = table.getColumn(iColumn);
		item.setText((new StringBuilder()).append("'").append(tcColumn.getText()).append("' ").append(MessageText.getString("GenericText.column")).toString());
		if (menu != null)
		{
			menu.setData("ColumnNo", new Long(iColumn));
			menu.setData("column", tcColumn);
		}
		String sColumnName = (String)tcColumn.getData("Name");
		if (sColumnName != null)
		{
			Object listeners[] = listenersMenuFill.toArray();
			for (int i = 0; i < listeners.length; i++)
			{
				TableViewSWTMenuFillListener l = (TableViewSWTMenuFillListener)listeners[i];
				l.addThisColumnSubMenu(sColumnName, menuThisColumn);
			}

		}
		if (menuThisColumn.getItemCount() > 0)
			new MenuItem(menuThisColumn, 2);
		item = new MenuItem(menuThisColumn, 8);
		Messages.setLanguageText(item, "MyTorrentsView.menu.thisColumn.sort");
		item.addListener(13, new Listener() {

			final TableViewSWTImpl this$0;

			public void handleEvent(Event e)
			{
				int iColumn = ((Long)menu.getData("ColumnNo")).intValue();
				table.getColumn(iColumn).notifyListeners(13, new Event());
			}

			
			{
				this$0 = TableViewSWTImpl.this;
				super();
			}
		});
		final MenuItem at_item = new MenuItem(menuThisColumn, 32);
		Messages.setLanguageText(at_item, "MyTorrentsView.menu.thisColumn.autoTooltip");
		at_item.addListener(13, new Listener() {

			final MenuItem val$at_item;
			final TableViewSWTImpl this$0;

			public void handleEvent(Event e)
			{
				TableColumn tc = (TableColumn)menu.getData("column");
				TableColumnCore tcc = (TableColumnCore)tc.getData("TableColumnCore");
				tcc.setAutoTooltip(at_item.getSelection());
				tcc.invalidateCells();
			}

			
			{
				this$0 = TableViewSWTImpl.this;
				at_item = menuitem;
				super();
			}
		});
		at_item.setSelection(((TableColumnCore)tcColumn.getData("TableColumnCore")).doesAutoTooltip());
		item = new MenuItem(menuThisColumn, 8);
		Messages.setLanguageText(item, "MyTorrentsView.menu.thisColumn.remove");
		item.addListener(13, new Listener() {

			final TableColumn val$tcColumn;
			final TableViewSWTImpl this$0;

			public void handleEvent(Event e)
			{
				TableColumn tc = (TableColumn)menu.getData("column");
				if (tc == null)
					return;
				String columnName = (String)tcColumn.getData("Name");
				if (columnName == null)
					return;
				for (int i = 0; i < tableColumns.length; i++)
					if (tableColumns[i].getName().equals(columnName))
						tableColumns[i].setVisible(false);

				tableStructureChanged(false);
			}

			
			{
				this$0 = TableViewSWTImpl.this;
				tcColumn = tablecolumn;
				super();
			}
		});
		item = new MenuItem(menuThisColumn, 8);
		Messages.setLanguageText(item, "MyTorrentsView.menu.thisColumn.toClipboard");
		item.addListener(13, new Listener() {

			final TableColumn val$tcColumn;
			final TableViewSWTImpl this$0;

			public void handleEvent(Event e)
			{
				String sToClipboard = "";
				TableColumn tc = (TableColumn)menu.getData("column");
				if (tc == null)
					return;
				String columnName = (String)tcColumn.getData("Name");
				if (columnName == null)
					return;
				TableItem tis[] = table.getSelection();
				for (int i = 0; i < tis.length; i++)
				{
					if (i != 0)
						sToClipboard = (new StringBuilder()).append(sToClipboard).append("\n").toString();
					TableRowCore row = (TableRowCore)tis[i].getData("TableRow");
					TableCellCore cell = row.getTableCellCore(columnName);
					if (cell != null)
						sToClipboard = (new StringBuilder()).append(sToClipboard).append(cell.getText()).toString();
				}

				if (sToClipboard.length() == 0)
				{
					return;
				} else
				{
					(new Clipboard(mainComposite.getDisplay())).setContents(new Object[] {
						sToClipboard
					}, new Transfer[] {
						TextTransfer.getInstance()
					});
					return;
				}
			}

			
			{
				this$0 = TableViewSWTImpl.this;
				tcColumn = tablecolumn;
				super();
			}
		});
		TableColumnCore tc = (TableColumnCore)tcColumn.getData("TableColumnCore");
		org.gudy.azureus2.plugins.ui.tables.TableContextMenuItem items[] = tc.getContextMenuItems();
		if (items.length > 0)
		{
			new MenuItem(menuThisColumn, 2);
			MenuBuildUtils.addPluginMenuItems(getComposite(), items, menuThisColumn, true, true, new org.gudy.azureus2.ui.swt.MenuBuildUtils.MenuItemPluginMenuControllerImpl(getSelectedDataSources(true)));
		}
	}

	public Composite getComposite()
	{
		return mainComposite;
	}

	public Composite getTableComposite()
	{
		return tableComposite;
	}

	public IView getActiveSubView()
	{
		if (!bEnableTabViews || tabFolder == null || tabFolder.isDisposed() || tabFolder.getMinimized())
			return null;
		CTabItem item = tabFolder.getSelection();
		if (item != null)
			return (IView)item.getData("IView");
		else
			return null;
	}

	public void refreshSelectedSubView()
	{
		IView view = getActiveSubView();
		if (view != null)
			view.refresh();
	}

	public void refreshTable(final boolean bForceSort)
	{
		Utils.execSWTThread(new AERunnable() {

			final boolean val$bForceSort;
			final TableViewSWTImpl this$0;

			public void runSupport()
			{
				_refreshTable(bForceSort);
				if (bEnableTabViews && tabFolder != null && !tabFolder.isDisposed() && !tabFolder.getMinimized())
					refreshSelectedSubView();
			}

			
			{
				this$0 = TableViewSWTImpl.this;
				bForceSort = flag;
				super();
			}
		});
		triggerTableRefreshListeners();
	}

	private void _refreshTable(boolean bForceSort)
	{
		if (table == null)
			return;
		isVisible();
		if (getComposite() == null || getComposite().isDisposed())
			return;
		if (checkColumnWidthsEvery != 0 && loopFactor % checkColumnWidthsEvery == 0)
		{
			TableColumn tableColumnsSWT[] = table.getColumns();
			for (int i = 0; i < tableColumnsSWT.length; i++)
			{
				TableColumnCore tc = (TableColumnCore)tableColumnsSWT[i].getData("TableColu

⌨️ 快捷键说明

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