| /* |
| * Copyright 2000-2014 JetBrains s.r.o. |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| package com.intellij.openapi.ui.popup; |
| |
| import com.intellij.openapi.project.Project; |
| import com.intellij.openapi.util.Computable; |
| import com.intellij.openapi.util.Condition; |
| import com.intellij.openapi.util.Pair; |
| import com.intellij.ui.ActiveComponent; |
| import com.intellij.util.BooleanFunction; |
| import com.intellij.util.Processor; |
| import org.jetbrains.annotations.NonNls; |
| import org.jetbrains.annotations.NotNull; |
| import org.jetbrains.annotations.Nullable; |
| |
| import javax.swing.*; |
| import java.awt.*; |
| import java.awt.event.ActionListener; |
| import java.awt.event.KeyEvent; |
| import java.util.List; |
| |
| /** |
| * @author max |
| */ |
| public interface ComponentPopupBuilder { |
| @NotNull |
| ComponentPopupBuilder setTitle(String title); |
| |
| @NotNull |
| ComponentPopupBuilder setResizable(boolean forceResizable); |
| |
| @NotNull |
| ComponentPopupBuilder setMovable(boolean forceMovable); |
| |
| @NotNull |
| ComponentPopupBuilder setRequestFocus(boolean requestFocus); |
| |
| @NotNull |
| ComponentPopupBuilder setFocusable(boolean focusable); |
| |
| @NotNull |
| ComponentPopupBuilder setRequestFocusCondition(Project project, Condition<Project> condition); |
| |
| /** |
| * @see com.intellij.openapi.util.DimensionService |
| */ |
| @NotNull |
| ComponentPopupBuilder setDimensionServiceKey(@Nullable Project project, @NonNls String key, boolean useForXYLocation); |
| |
| @NotNull |
| ComponentPopupBuilder setCancelCallback(Computable<Boolean> shouldProceed); |
| |
| @NotNull |
| ComponentPopupBuilder setCancelOnClickOutside(boolean cancel); |
| |
| @NotNull |
| ComponentPopupBuilder addListener(JBPopupListener listener); |
| |
| @NotNull |
| ComponentPopupBuilder setCancelOnMouseOutCallback(MouseChecker shouldCancel); |
| |
| @NotNull |
| JBPopup createPopup(); |
| |
| @NotNull |
| ComponentPopupBuilder setCancelButton(@NotNull IconButton cancelButton); |
| |
| @NotNull |
| ComponentPopupBuilder setCancelOnOtherWindowOpen(boolean cancelOnWindow); |
| |
| @NotNull |
| ComponentPopupBuilder setTitleIcon(@NotNull ActiveIcon icon); |
| |
| @NotNull |
| ComponentPopupBuilder setCancelKeyEnabled(boolean enabled); |
| |
| @NotNull |
| ComponentPopupBuilder setLocateByContent(boolean byContent); |
| |
| @NotNull |
| ComponentPopupBuilder setLocateWithinScreenBounds(boolean within); |
| |
| @NotNull |
| ComponentPopupBuilder setMinSize(Dimension minSize); |
| |
| /** |
| * Use this method to customize shape of popup window (e.g. to use bounded corners). |
| */ |
| @SuppressWarnings("UnusedDeclaration")//used in 'Presentation Assistant' plugin |
| @NotNull |
| ComponentPopupBuilder setMaskProvider(MaskProvider maskProvider); |
| |
| @NotNull |
| ComponentPopupBuilder setAlpha(float alpha); |
| |
| @NotNull |
| ComponentPopupBuilder setBelongsToGlobalPopupStack(boolean isInStack); |
| |
| @NotNull |
| ComponentPopupBuilder setProject(Project project); |
| |
| @NotNull |
| ComponentPopupBuilder addUserData(Object object); |
| |
| @NotNull |
| ComponentPopupBuilder setModalContext(boolean modal); |
| |
| @NotNull |
| ComponentPopupBuilder setFocusOwners(@NotNull Component[] focusOwners); |
| |
| /** |
| * Adds "advertising" text to the bottom (e.g.: hints in code completion popup). |
| */ |
| @NotNull |
| ComponentPopupBuilder setAdText(@Nullable String text); |
| |
| @NotNull |
| ComponentPopupBuilder setAdText(@Nullable String text, int textAlignment); |
| |
| @NotNull |
| ComponentPopupBuilder setShowShadow(boolean show); |
| |
| @NotNull |
| ComponentPopupBuilder setCommandButton(@NotNull ActiveComponent commandButton); |
| |
| @NotNull |
| ComponentPopupBuilder setCouldPin(@Nullable Processor<JBPopup> callback); |
| |
| @NotNull |
| ComponentPopupBuilder setKeyboardActions(@NotNull List<Pair<ActionListener, KeyStroke>> keyboardActions); |
| |
| @NotNull |
| ComponentPopupBuilder setSettingButtons(@NotNull Component button); |
| |
| @NotNull |
| ComponentPopupBuilder setMayBeParent(boolean mayBeParent); |
| |
| ComponentPopupBuilder setCancelOnWindowDeactivation(boolean cancelOnWindowDeactivation); |
| |
| /** |
| * Allows to define custom strategy for processing {@link JBPopup#dispatchKeyEvent(KeyEvent)}. |
| */ |
| @NotNull |
| ComponentPopupBuilder setKeyEventHandler(@NotNull BooleanFunction<KeyEvent> handler); |
| |
| @NotNull |
| ComponentPopupBuilder setShowBorder(boolean show); |
| } |