diff options
author | Wim Jongman | 2018-03-30 19:58:59 +0000 |
---|---|---|
committer | Wim Jongman | 2018-04-03 18:00:49 +0000 |
commit | c6dc63a33eebe03f3d4e3acd88f16a40197eaa4c (patch) | |
tree | d242865a8adcf0364d1b97e2fe58db4ab23c2df9 /org.eclipse.tips.ui/src/org | |
parent | a2dfce1d07581309804ed8fb64ee6c5c01d1d492 (diff) | |
download | eclipse.platform.ua-c6dc63a33eebe03f3d4e3acd88f16a40197eaa4c.tar.gz eclipse.platform.ua-c6dc63a33eebe03f3d4e3acd88f16a40197eaa4c.tar.xz eclipse.platform.ua-c6dc63a33eebe03f3d4e3acd88f16a40197eaa4c.zip |
Bug 531792: [Tips] API cleanup
* Moved TipManager to internal
* Fixed all arising issues
* Added save read tips to preferences
Change-Id: Id557ab165f63ecabf87460671d1ec8e7ba5de522
Signed-off-by: Wim Jongman <wim.jongman@remainsoftware.com>
Diffstat (limited to 'org.eclipse.tips.ui/src/org')
-rw-r--r-- | org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java (renamed from org.eclipse.tips.ui/src/org/eclipse/tips/ui/DefaultTipManager.java) | 34 | ||||
-rw-r--r-- | org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java | 10 | ||||
-rw-r--r-- | org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java | 8 | ||||
-rw-r--r-- | org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java | 3 |
4 files changed, 24 insertions, 31 deletions
diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/DefaultTipManager.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java index 48b6159dd..cbb5ff483 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/DefaultTipManager.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/DefaultTipManager.java @@ -8,14 +8,14 @@ * Contributors: * wim.jongman@remainsoftware.com - initial API and implementation *******************************************************************************/ -package org.eclipse.tips.ui; +package org.eclipse.tips.ui.internal; import org.eclipse.core.runtime.Assert; import org.eclipse.swt.widgets.Display; -import org.eclipse.tips.core.TipManager; +import org.eclipse.tips.core.ITipManager; import org.eclipse.tips.core.TipProvider; import org.eclipse.tips.core.internal.LogUtil; -import org.eclipse.tips.ui.internal.TipDialog; +import org.eclipse.tips.core.internal.TipManager; /** * Class to manage the tip providers and start the tip of the day UI. @@ -30,40 +30,32 @@ public abstract class DefaultTipManager extends TipManager { * Opens the Tip of the Day dialog. Subclasses may override if they want to * present the Tips in a different way, e.g. in a view. * - * @param startUp - * When called from a startup situation, true must be passed for - * <code>pStartup</code>. If in a manual starting situation, false - * must be passed. This enables the manager to decide to skip opening - * the dialog at startup (e.g., no new tip items). + * @param startUp When called from a startup situation, true must be passed for + * <code>pStartup</code>. If in a manual starting situation, + * false must be passed. This enables the manager to decide to + * skip opening the dialog at startup (e.g., no new tip items). * * @see #isOpen() */ @Override - public TipManager open(boolean startUp) { - if (fOpen && (fTipDialog == null || fTipDialog.getShell() == null || fTipDialog.getShell().isDisposed())) { - fOpen = false; - } + public ITipManager open(boolean startUp) { try { - Assert.isTrue(!fOpen, "Tip of the Day already open."); + Assert.isTrue(!isOpen(), "Tip of the Day already open."); } catch (Exception e) { log(LogUtil.error(getClass(), e)); throw e; } - if (!mustOpen(startUp)) { return this; } + setOpen(true); + fTipDialog = new TipDialog(Display.getCurrent().getActiveShell(), this, TipDialog.DEFAULT_STYLE); fTipDialog.open(); fTipDialog.getShell().addDisposeListener(pE -> { - try { - dispose(); - } finally { - fOpen = false; - } + dispose(); }); - fOpen = true; return this; } @@ -74,7 +66,7 @@ public abstract class DefaultTipManager extends TipManager { } if (startUp && isRunAtStartup()) { for (TipProvider provider : getProviders()) { - if (provider.isReady() && !provider.getTips(true).isEmpty()) { + if (provider.isReady() && !provider.getTips().isEmpty()) { return true; } } diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java index c5c7d0aa5..bf94357fe 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/Slider.java @@ -29,9 +29,9 @@ import org.eclipse.swt.widgets.Button; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.tips.core.TipImage; -import org.eclipse.tips.core.TipManager; import org.eclipse.tips.core.TipProvider; import org.eclipse.tips.core.internal.LogUtil; +import org.eclipse.tips.core.internal.TipManager; import org.eclipse.tips.ui.internal.util.ImageUtil; import org.eclipse.tips.ui.internal.util.ResourceManager; import org.eclipse.tips.ui.internal.util.SWTResourceManager; @@ -159,7 +159,7 @@ public class Slider extends Composite { int newSpacing = fSpacing + (emptyPixelsLeft / (spaceCount + 1)); for (int i = 0; i < Math.min(providerCount - fSliderIndex, spaceCount); i++) { TipProvider provider = providers.get(i + fSliderIndex); - if (fSelectedProvider == null && !provider.getTips(true).isEmpty()) { + if (fSelectedProvider == null && !provider.getTips().isEmpty()) { fSelectedProvider = provider; notifyListeners(fSelectedProvider); } @@ -314,7 +314,7 @@ public class Slider extends Composite { private void paintButton(GC gc, Composite providerButton, TipProvider provider) { gc.setAdvanced(true); - if (fSelectedProvider.equals(provider)) { + if (provider.equals(fSelectedProvider)) { gc.setForeground(getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION_TEXT)); gc.setBackground(getDisplay().getSystemColor(SWT.COLOR_LIST_SELECTION)); gc.drawRectangle(0, 0, fIconSize + 3, fIconSize + 3); @@ -354,13 +354,13 @@ public class Slider extends Composite { } private Image getUnreadOverlay(Composite providerButton, TipProvider provider) { - if (provider.getTips(true).isEmpty()) { + if (provider.getTips().isEmpty()) { return getProviderImage(provider, selectProviderImage(provider)); } GC gc2 = new GC(providerButton); gc2.setAdvanced(true); gc2.setFont(SWTResourceManager.getBoldFont(gc2.getFont())); - int tipCount = provider.getTips(true).size(); + int tipCount = provider.getTips().size(); Point textExtent = gc2.textExtent(tipCount + ""); gc2.dispose(); diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java index 57f81b032..f1a792c5f 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipComposite.java @@ -48,9 +48,9 @@ import org.eclipse.tips.core.IUrlTip; import org.eclipse.tips.core.Tip; import org.eclipse.tips.core.TipAction; import org.eclipse.tips.core.TipImage; -import org.eclipse.tips.core.TipManager; import org.eclipse.tips.core.TipProvider; import org.eclipse.tips.core.internal.LogUtil; +import org.eclipse.tips.core.internal.TipManager; import org.eclipse.tips.ui.ISwtTip; import org.eclipse.tips.ui.internal.util.ImageUtil; import org.eclipse.tips.ui.internal.util.ResourceManager; @@ -313,10 +313,10 @@ public class TipComposite extends Composite implements ProviderSelectionListener } private void getNextTip() { - if (fProvider.getTips(true).isEmpty() && !fTipManager.getProviders().isEmpty()) { + if (fProvider.getTips().isEmpty() && !fTipManager.getProviders().isEmpty()) { fProvider.getNextTip(); // advance current tip for (TipProvider provider : fTipManager.getProviders()) { - if (!provider.getTips(true).isEmpty()) { + if (!provider.getTips().isEmpty()) { setProvider(provider); break; } @@ -387,7 +387,7 @@ public class TipComposite extends Composite implements ProviderSelectionListener */ private void loadTimeOutScript() { fBrowser.setText(getScaling() + getLoadingScript(500)); - while (!getShell().isDisposed()) { + while (!isDisposed()) { if (!getDisplay().readAndDispatch()) { break; } diff --git a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java index fe76b7886..e1dbe7912 100644 --- a/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java +++ b/org.eclipse.tips.ui/src/org/eclipse/tips/ui/internal/TipDialog.java @@ -18,12 +18,13 @@ import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Shell; -import org.eclipse.tips.core.TipManager; +import org.eclipse.tips.core.internal.TipManager; /** * The dialog containing the tips. * */ +@SuppressWarnings("restriction") public class TipDialog extends Dialog { /** |