<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSWT%2FCoolBar</id>
		<title>Java Tutorial/SWT/CoolBar - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_Tutorial%2FSWT%2FCoolBar"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/CoolBar&amp;action=history"/>
		<updated>2026-04-21T12:51:54Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/CoolBar&amp;diff=3025&amp;oldid=prev</id>
		<title> в 17:44, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/CoolBar&amp;diff=3025&amp;oldid=prev"/>
				<updated>2010-05-31T17:44:26Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:44, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/CoolBar&amp;diff=3026&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_Tutorial/SWT/CoolBar&amp;diff=3026&amp;oldid=prev"/>
				<updated>2010-05-31T15:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==  Add Button and Combo to a CoolBar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.widgets.Button;&lt;br /&gt;
import org.eclipse.swt.widgets.rubo;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
public class CoolBarComboButton {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    CoolBar bar = new CoolBar(shell, SWT.BORDER);&lt;br /&gt;
    CoolItem item = new CoolItem(bar, SWT.NONE);&lt;br /&gt;
    Button button = new Button(bar, SWT.PUSH);&lt;br /&gt;
    button.setText(&amp;quot;Button &amp;quot;);&lt;br /&gt;
    Point size = button.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);&lt;br /&gt;
    item.setPreferredSize(item.ruputeSize(size.x, size.y));&lt;br /&gt;
    item.setControl(button);&lt;br /&gt;
&lt;br /&gt;
    item = new CoolItem(bar, SWT.NONE);&lt;br /&gt;
    Combo combo = new Combo(bar, SWT.NONE);&lt;br /&gt;
    size = combo.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);&lt;br /&gt;
    item.setPreferredSize(item.ruputeSize(size.x, size.y));&lt;br /&gt;
    item.setControl(combo);&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    bar.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Add ToolBar to CoolBar ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.widgets.ruposite;&lt;br /&gt;
import org.eclipse.swt.widgets.Control;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolItem;&lt;br /&gt;
public class CoolBarToolBar {&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    Shell shell = new Shell(display);&lt;br /&gt;
    CoolBar coolBar = new CoolBar(shell, SWT.BORDER);&lt;br /&gt;
    coolBar.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));&lt;br /&gt;
    final CoolItem item = new CoolItem(coolBar, SWT.DROP_DOWN);&lt;br /&gt;
    item.setControl(createToolBar(coolBar));&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    Control control = item.getControl();&lt;br /&gt;
    Point pt = control.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);&lt;br /&gt;
    pt = item.ruputeSize(pt.x, pt.y);&lt;br /&gt;
    item.setSize(pt);    &lt;br /&gt;
    &lt;br /&gt;
    coolBar.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
  private static Control createToolBar(Composite composite) {&lt;br /&gt;
    ToolBar toolBar = new ToolBar(composite, SWT.NONE);&lt;br /&gt;
    ToolItem item = new ToolItem(toolBar, SWT.PUSH);&lt;br /&gt;
    item.setText(&amp;quot;circle&amp;quot;);&lt;br /&gt;
    item = new ToolItem(toolBar, SWT.PUSH);&lt;br /&gt;
    item.setText(&amp;quot;square&amp;quot;);&lt;br /&gt;
    item = new ToolItem(toolBar, SWT.PUSH);&lt;br /&gt;
    item.setText(&amp;quot;star&amp;quot;);&lt;br /&gt;
    item = new ToolItem(toolBar, SWT.PUSH);&lt;br /&gt;
    item.setText(&amp;quot;triangle&amp;quot;);&lt;br /&gt;
    return toolBar;&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  CoolBar: drop-down a chevron menu containing hidden tool items ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
/*&lt;br /&gt;
 * CoolBar example snippet: drop-down a chevron menu containing hidden tool items&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.events.SelectionAdapter;&lt;br /&gt;
import org.eclipse.swt.events.SelectionEvent;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.graphics.Rectangle;&lt;br /&gt;
import org.eclipse.swt.layout.GridData;&lt;br /&gt;
import org.eclipse.swt.layout.GridLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Menu;&lt;br /&gt;
import org.eclipse.swt.widgets.MenuItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolItem;&lt;br /&gt;
public class ChevronMenuHiddenToolItems {&lt;br /&gt;
  static Display display;&lt;br /&gt;
  static Shell shell;&lt;br /&gt;
  static CoolBar coolBar;&lt;br /&gt;
  static Menu chevronMenu = null;&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    display = new Display();&lt;br /&gt;
    shell = new Shell(display);&lt;br /&gt;
    shell.setLayout(new GridLayout());&lt;br /&gt;
    coolBar = new CoolBar(shell, SWT.FLAT | SWT.BORDER);&lt;br /&gt;
    coolBar.setLayoutData(new GridData(GridData.FILL_BOTH));&lt;br /&gt;
    ToolBar toolBar = new ToolBar(coolBar, SWT.FLAT | SWT.WRAP);&lt;br /&gt;
    int minWidth = 0;&lt;br /&gt;
    for (int j = 0; j &amp;lt; 5; j++) {&lt;br /&gt;
      int width = 0;&lt;br /&gt;
      ToolItem item = new ToolItem(toolBar, SWT.PUSH);&lt;br /&gt;
      item.setText(&amp;quot;B&amp;quot; + j);&lt;br /&gt;
      width = item.getWidth();&lt;br /&gt;
      /* find the width of the widest tool */&lt;br /&gt;
      if (width &amp;gt; minWidth)&lt;br /&gt;
        minWidth = width;&lt;br /&gt;
    }&lt;br /&gt;
    CoolItem coolItem = new CoolItem(coolBar, SWT.DROP_DOWN);&lt;br /&gt;
    coolItem.setControl(toolBar);&lt;br /&gt;
    Point size = toolBar.ruputeSize(SWT.DEFAULT, SWT.DEFAULT);&lt;br /&gt;
    Point coolSize = coolItem.ruputeSize(size.x, size.y);&lt;br /&gt;
    coolItem.setMinimumSize(minWidth, coolSize.y);&lt;br /&gt;
    coolItem.setPreferredSize(coolSize);&lt;br /&gt;
    coolItem.setSize(coolSize);&lt;br /&gt;
    coolItem.addSelectionListener(new SelectionAdapter() {&lt;br /&gt;
      public void widgetSelected(SelectionEvent event) {&lt;br /&gt;
        if (event.detail == SWT.ARROW) {&lt;br /&gt;
          CoolItem item = (CoolItem) event.widget;&lt;br /&gt;
          Rectangle itemBounds = item.getBounds();&lt;br /&gt;
          Point pt = coolBar.toDisplay(new Point(itemBounds.x, itemBounds.y));&lt;br /&gt;
          itemBounds.x = pt.x;&lt;br /&gt;
          itemBounds.y = pt.y;&lt;br /&gt;
          ToolBar bar = (ToolBar) item.getControl();&lt;br /&gt;
          ToolItem[] tools = bar.getItems();&lt;br /&gt;
          int i = 0;&lt;br /&gt;
          while (i &amp;lt; tools.length) {&lt;br /&gt;
            Rectangle toolBounds = tools[i].getBounds();&lt;br /&gt;
            pt = bar.toDisplay(new Point(toolBounds.x, toolBounds.y));&lt;br /&gt;
            toolBounds.x = pt.x;&lt;br /&gt;
            toolBounds.y = pt.y;&lt;br /&gt;
            /*&lt;br /&gt;
             * Figure out the visible portion of the tool by looking at the&lt;br /&gt;
             * intersection of the tool bounds with the cool item bounds.&lt;br /&gt;
             */&lt;br /&gt;
            Rectangle intersection = itemBounds.intersection(toolBounds);&lt;br /&gt;
            /*&lt;br /&gt;
             * If the tool is not completely within the cool item bounds, then&lt;br /&gt;
             * it is partially hidden, and all remaining tools are completely&lt;br /&gt;
             * hidden.&lt;br /&gt;
             */&lt;br /&gt;
            if (!intersection.equals(toolBounds))&lt;br /&gt;
              break;&lt;br /&gt;
            i++;&lt;br /&gt;
          }&lt;br /&gt;
          /* Create a menu with items for each of the completely hidden buttons. */&lt;br /&gt;
          if (chevronMenu != null)&lt;br /&gt;
            chevronMenu.dispose();&lt;br /&gt;
          chevronMenu = new Menu(coolBar);&lt;br /&gt;
          for (int j = i; j &amp;lt; tools.length; j++) {&lt;br /&gt;
            MenuItem menuItem = new MenuItem(chevronMenu, SWT.PUSH);&lt;br /&gt;
            menuItem.setText(tools[j].getText());&lt;br /&gt;
          }&lt;br /&gt;
          /* Drop down the menu below the chevron, with the left edges aligned. */&lt;br /&gt;
          pt = coolBar.toDisplay(new Point(event.x, event.y));&lt;br /&gt;
          chevronMenu.setLocation(pt.x, pt.y);&lt;br /&gt;
          chevronMenu.setVisible(true);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    shell.pack();&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Create a coolbar (relayout when resized) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*******************************************************************************&lt;br /&gt;
 * Copyright (c) 2000, 2004 IBM Corporation and others.&lt;br /&gt;
 * All rights reserved. This program and the accompanying materials&lt;br /&gt;
 * are made available under the terms of the Eclipse Public License v1.0&lt;br /&gt;
 * which accompanies this distribution, and is available at&lt;br /&gt;
 * http://www.eclipse.org/legal/epl-v10.html&lt;br /&gt;
 *&lt;br /&gt;
 * Contributors:&lt;br /&gt;
 *     IBM Corporation - initial API and implementation&lt;br /&gt;
 *******************************************************************************/&lt;br /&gt;
/*&lt;br /&gt;
 * CoolBar example snippet: create a coolbar (relayout when resized)&lt;br /&gt;
 *&lt;br /&gt;
 * For a list of all SWT example snippets see&lt;br /&gt;
 * http://www.eclipse.org/swt/snippets/&lt;br /&gt;
 * &lt;br /&gt;
 * @since 3.0&lt;br /&gt;
 */&lt;br /&gt;
import org.eclipse.swt.SWT;&lt;br /&gt;
import org.eclipse.swt.graphics.Point;&lt;br /&gt;
import org.eclipse.swt.layout.FormAttachment;&lt;br /&gt;
import org.eclipse.swt.layout.FormData;&lt;br /&gt;
import org.eclipse.swt.layout.FormLayout;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.CoolItem;&lt;br /&gt;
import org.eclipse.swt.widgets.Display;&lt;br /&gt;
import org.eclipse.swt.widgets.Event;&lt;br /&gt;
import org.eclipse.swt.widgets.Listener;&lt;br /&gt;
import org.eclipse.swt.widgets.Shell;&lt;br /&gt;
import org.eclipse.swt.widgets.Text;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolBar;&lt;br /&gt;
import org.eclipse.swt.widgets.ToolItem;&lt;br /&gt;
public class CoolBarRelayoutResize {&lt;br /&gt;
  static int itemCount;&lt;br /&gt;
  static CoolItem createItem(CoolBar coolBar, int count) {&lt;br /&gt;
    ToolBar toolBar = new ToolBar(coolBar, SWT.FLAT);&lt;br /&gt;
    for (int i = 0; i &amp;lt; count; i++) {&lt;br /&gt;
      ToolItem item = new ToolItem(toolBar, SWT.PUSH);&lt;br /&gt;
      item.setText(itemCount++ + &amp;quot;&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    toolBar.pack();&lt;br /&gt;
    Point size = toolBar.getSize();&lt;br /&gt;
    CoolItem item = new CoolItem(coolBar, SWT.NONE);&lt;br /&gt;
    item.setControl(toolBar);&lt;br /&gt;
    Point preferred = item.ruputeSize(size.x, size.y);&lt;br /&gt;
    item.setPreferredSize(preferred);&lt;br /&gt;
    return item;&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String[] args) {&lt;br /&gt;
    Display display = new Display();&lt;br /&gt;
    final Shell shell = new Shell(display);&lt;br /&gt;
    CoolBar coolBar = new CoolBar(shell, SWT.NONE);&lt;br /&gt;
    createItem(coolBar, 3);&lt;br /&gt;
    createItem(coolBar, 2);&lt;br /&gt;
    createItem(coolBar, 3);&lt;br /&gt;
    createItem(coolBar, 4);&lt;br /&gt;
    int style = SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL;&lt;br /&gt;
    Text text = new Text(shell, style);&lt;br /&gt;
    FormLayout layout = new FormLayout();&lt;br /&gt;
    shell.setLayout(layout);&lt;br /&gt;
    FormData coolData = new FormData();&lt;br /&gt;
    coolData.left = new FormAttachment(0);&lt;br /&gt;
    coolData.right = new FormAttachment(100);&lt;br /&gt;
    coolData.top = new FormAttachment(0);&lt;br /&gt;
    coolBar.setLayoutData(coolData);&lt;br /&gt;
    coolBar.addListener(SWT.Resize, new Listener() {&lt;br /&gt;
      public void handleEvent(Event event) {&lt;br /&gt;
        shell.layout();&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    FormData textData = new FormData();&lt;br /&gt;
    textData.left = new FormAttachment(0);&lt;br /&gt;
    textData.right = new FormAttachment(100);&lt;br /&gt;
    textData.top = new FormAttachment(coolBar);&lt;br /&gt;
    textData.bottom = new FormAttachment(100);&lt;br /&gt;
    text.setLayoutData(textData);&lt;br /&gt;
    shell.open();&lt;br /&gt;
    while (!shell.isDisposed()) {&lt;br /&gt;
      if (!display.readAndDispatch())&lt;br /&gt;
        display.sleep();&lt;br /&gt;
    }&lt;br /&gt;
    display.dispose();&lt;br /&gt;
  }&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==  Creating Coolbars ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;p&amp;gt;SWT uses two classes to implement coolbars: CoolBar and CoolItem. &lt;br /&gt;
You must size the CoolItem yourself, or it won&amp;quot;t be sized properly.&amp;lt;/p&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>