add override

This commit is contained in:
Vladimir Krivosheev
2018-08-14 17:49:34 +02:00
parent 618a8f6669
commit bd202ecfc7
2183 changed files with 9155 additions and 1203 deletions
@@ -30,7 +30,10 @@ import org.eclipse.aether.util.filter.DependencyFilterUtils;
import org.eclipse.aether.util.graph.visitor.FilteringDependencyVisitor;
import org.eclipse.aether.util.graph.visitor.TreeDependencyVisitor;
import org.eclipse.aether.util.version.GenericVersionScheme;
import org.eclipse.aether.version.*;
import org.eclipse.aether.version.InvalidVersionSpecificationException;
import org.eclipse.aether.version.Version;
import org.eclipse.aether.version.VersionConstraint;
import org.eclipse.aether.version.VersionScheme;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@@ -68,6 +71,7 @@ public class ArtifactRepositoryManager {
locator.addService(TransporterFactory.class, FileTransporterFactory.class);
locator.addService(TransporterFactory.class, HttpTransporterFactory.class);
locator.setErrorHandler(new DefaultServiceLocator.ErrorHandler() {
@Override
public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable exception) {
if (exception != null) {
throw new RuntimeException(exception);
@@ -95,6 +99,7 @@ public class ArtifactRepositoryManager {
session.setTransferListener((TransferListener)Proxy
.newProxyInstance(session.getClass().getClassLoader(), new Class[]{TransferListener.class}, new InvocationHandler() {
private final EnumSet<TransferEvent.EventType> checkCancelEvents = EnumSet.of(TransferEvent.EventType.INITIATED, TransferEvent.EventType.STARTED, TransferEvent.EventType.PROGRESSED);
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
final Object event = args[0];
if (event instanceof TransferEvent) {
@@ -330,6 +335,7 @@ public class ArtifactRepositoryManager {
myKind = kind;
}
@Override
public boolean visitEnter(DependencyNode node) {
final Dependency dep = node.getDependency();
if (dep != null) {
@@ -342,6 +348,7 @@ public class ArtifactRepositoryManager {
return true;
}
@Override
public boolean visitLeave(DependencyNode node) {
return true;
}
@@ -1,9 +1,9 @@
// Copyright 2000-2017 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
package org.jetbrains.idea.maven.aether;
import org.eclipse.aether.repository.*;
import org.eclipse.aether.repository.Proxy;
import org.eclipse.aether.repository.ProxySelector;
import org.eclipse.aether.repository.*;
import org.jetbrains.annotations.Nullable;
import java.net.*;
@@ -19,6 +19,7 @@ final class JreProxySelector implements ProxySelector {
JreProxySelector() {
}
@Override
public Proxy getProxy(RemoteRepository repository) {
return getProxy(repository.getUrl());
}
@@ -77,6 +78,7 @@ final class JreProxySelector implements ProxySelector {
public static final Authentication INSTANCE = new JreProxyAuthentication();
@Override
public void fill(AuthenticationContext context, String key, Map<String, String> data) {
Proxy proxy = context.getProxy();
if (proxy == null) {
@@ -114,6 +116,7 @@ final class JreProxySelector implements ProxySelector {
}
}
@Override
public void digest(AuthenticationDigest digest) {
// we don't know anything about the JRE's current authenticator, assume the worst (i.e. interactive)
digest.update(UUID.randomUUID().toString());
@@ -5,6 +5,7 @@ package org.jetbrains.idea.maven.aether;
*/
public interface ProgressConsumer {
ProgressConsumer DEAF = new ProgressConsumer() {
@Override
public void consume(String message) {
}
};
@@ -47,6 +47,7 @@ import java.util.Map;
* @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
*/
public final class EditExternallyAction extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
Project project = e.getData(CommonDataKeys.PROJECT);
VirtualFile[] files = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY);
@@ -100,6 +101,7 @@ public final class EditExternallyAction extends AnAction {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull;
* @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
*/
public final class ShowThumbnailsAction extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
Project project = e.getData(CommonDataKeys.PROJECT);
VirtualFile file = e.getData(CommonDataKeys.VIRTUAL_FILE);
@@ -43,6 +44,7 @@ public final class ShowThumbnailsAction extends AnAction {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
VirtualFile file = e.getData(CommonDataKeys.VIRTUAL_FILE);
boolean enabled = file != null && file.isDirectory();
@@ -27,11 +27,13 @@ import org.jetbrains.annotations.NotNull;
* @see org.intellij.images.ui.ImageComponentDecorator#setTransparencyChessboardVisible
*/
public final class ToggleTransparencyChessboardAction extends ToggleAction {
@Override
public boolean isSelected(AnActionEvent e) {
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
return decorator != null && decorator.isEnabledForActionPlace(e.getPlace()) && decorator.isTransparencyChessboardVisible();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
if (decorator != null && decorator.isEnabledForActionPlace(e.getPlace())) {
@@ -39,6 +41,7 @@ public final class ToggleTransparencyChessboardAction extends ToggleAction {
}
}
@Override
public void update(@NotNull final AnActionEvent e) {
super.update(e);
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
@@ -29,6 +29,7 @@ import org.jetbrains.annotations.NotNull;
*/
public class ImageLookupInfoProvider extends FileLookupInfoProvider {
@Override
public Couple<String> getLookupInfo(@NotNull VirtualFile file, Project project) {
final String[] s = new String[] {null};
ImageInfoIndex.processValues(file, (file1, value) -> {
@@ -32,6 +32,7 @@ import org.jetbrains.annotations.NotNull;
* @see ImageZoomModel#setZoomFactor
*/
public final class ActualSizeAction extends AnAction implements DumbAware {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ImageComponentDecorator decorator = ImageEditorActionUtil.getImageComponentDecorator(e);
if (decorator != null) {
@@ -41,6 +42,7 @@ public final class ActualSizeAction extends AnAction implements DumbAware {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
if (ImageEditorActionUtil.setEnabled(e)) {
@@ -27,6 +27,7 @@ import org.intellij.images.ui.ImageComponentDecorator;
import org.jetbrains.annotations.NotNull;
public final class FitZoomToWindowAction extends AnAction implements DumbAware {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ImageComponentDecorator decorator = ImageEditorActionUtil.getImageComponentDecorator(e);
if (decorator != null) {
@@ -35,6 +36,7 @@ public final class FitZoomToWindowAction extends AnAction implements DumbAware {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
if (ImageEditorActionUtil.setEnabled(e)) {
Options options = OptionsManager.getInstance().getOptions();
@@ -30,11 +30,13 @@ import org.jetbrains.annotations.NotNull;
* @see ImageEditor#setGridVisible
*/
public final class ToggleGridAction extends ToggleAction implements DumbAware {
@Override
public boolean isSelected(AnActionEvent e) {
ImageComponentDecorator decorator = ImageEditorActionUtil.getImageComponentDecorator(e);
return decorator != null && decorator.isGridVisible();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
ImageComponentDecorator decorator = ImageEditorActionUtil.getImageComponentDecorator(e);
if (decorator != null) {
@@ -42,6 +44,7 @@ public final class ToggleGridAction extends ToggleAction implements DumbAware {
}
}
@Override
public void update(@NotNull final AnActionEvent e) {
super.update(e);
ImageEditorActionUtil.setEnabled(e);
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull;
* @see ImageEditor#getZoomModel
*/
public final class ZoomInAction extends AnAction implements DumbAware {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ImageComponentDecorator decorator = ImageEditorActionUtil.getImageComponentDecorator(e);
if (decorator != null) {
@@ -39,6 +40,7 @@ public final class ZoomInAction extends AnAction implements DumbAware {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
if (ImageEditorActionUtil.setEnabled(e)) {
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull;
* @see ImageEditor#getZoomModel
*/
public final class ZoomOutAction extends AnAction implements DumbAware {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ImageComponentDecorator decorator = ImageEditorActionUtil.getImageComponentDecorator(e);
if (decorator != null) {
@@ -39,6 +40,7 @@ public final class ZoomOutAction extends AnAction implements DumbAware {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
if (ImageEditorActionUtil.setEnabled(e)) {
@@ -74,64 +74,78 @@ public final class ImageEditorImpl implements ImageEditor {
}
}
@Override
public boolean isValid() {
ImageDocument document = editorUI.getImageComponent().getDocument();
return document.getValue() != null;
}
@Override
public ImageEditorUI getComponent() {
return editorUI;
}
@Override
public JComponent getContentComponent() {
return editorUI.getImageComponent();
}
@Override
@NotNull
public VirtualFile getFile() {
return file;
}
@Override
@NotNull
public Project getProject() {
return project;
}
@Override
public ImageDocument getDocument() {
return editorUI.getImageComponent().getDocument();
}
@Override
public void setTransparencyChessboardVisible(boolean visible) {
editorUI.getImageComponent().setTransparencyChessboardVisible(visible);
editorUI.repaint();
}
@Override
public boolean isTransparencyChessboardVisible() {
return editorUI.getImageComponent().isTransparencyChessboardVisible();
}
@Override
public boolean isEnabledForActionPlace(String place) {
// Disable for thumbnails action
return !ThumbnailViewActions.ACTION_PLACE.equals(place);
}
@Override
public void setGridVisible(boolean visible) {
editorUI.getImageComponent().setGridVisible(visible);
editorUI.repaint();
}
@Override
public boolean isGridVisible() {
return editorUI.getImageComponent().isGridVisible();
}
@Override
public boolean isDisposed() {
return disposed;
}
@Override
public ImageZoomModel getZoomModel() {
return editorUI.getZoomModel();
}
@Override
public void dispose() {
disposed = true;
}
@@ -144,11 +144,11 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
ActionToolbar actionToolbar = actionManager.createActionToolbar(
ImageEditorActions.ACTION_PLACE, actionGroup, true
);
// Make sure toolbar is 'ready' before it's added to component hierarchy
// Make sure toolbar is 'ready' before it's added to component hierarchy
// to prevent ActionToolbarImpl.updateActionsImpl(boolean, boolean) from increasing popup size unnecessarily
actionToolbar.updateActionsImmediately();
actionToolbar.setTargetComponent(this);
JComponent toolbarPanel = actionToolbar.getComponent();
@@ -215,6 +215,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
return imageComponent;
}
@Override
public void dispose() {
Options options = OptionsManager.getInstance().getOptions();
options.removePropertyChangeListener(optionsChangeListener);
@@ -253,6 +254,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
return imageComponent.isGridVisible();
}
@Override
public ImageZoomModel getZoomModel() {
return zoomModel;
}
@@ -302,7 +304,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
ImageZoomModel model = editor != null ? editor.getZoomModel() : getZoomModel();
double factor = model.getZoomFactor();
model.setZoomFactor(scale * factor);
return new Point(((int)((at.x - Math.max(scale > 1.0 ? locationBefore.x : 0, 0)) * scale)),
return new Point(((int)((at.x - Math.max(scale > 1.0 ? locationBefore.x : 0, 0)) * scale)),
((int)((at.y - Math.max(scale > 1.0 ? locationBefore.y : 0, 0)) * scale)));
}
});
@@ -316,11 +318,13 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
imageComponent.setLocation(point);
}
@Override
public void invalidate() {
centerComponents();
super.invalidate();
}
@Override
public Dimension getPreferredSize() {
return imageComponent.getSize();
}
@@ -336,6 +340,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
}
private final class ImageWheelAdapter implements MouseWheelListener {
@Override
public void mouseWheelMoved(MouseWheelEvent e) {
Options options = OptionsManager.getInstance().getOptions();
EditorOptions editorOptions = options.getEditorOptions();
@@ -393,10 +398,12 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
};
private double zoomFactor = 0.0d;
@Override
public double getZoomFactor() {
return zoomFactor;
}
@Override
public void setZoomFactor(double zoomFactor) {
double oldZoomFactor = getZoomFactor();
@@ -424,6 +431,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
return Math.max(factor, MICRO_ZOOM_LIMIT);
}
@Override
public void fitZoomToWindow() {
Options options = OptionsManager.getInstance().getOptions();
ZoomOptions zoomOptions = options.getEditorOptions().getZoomOptions();
@@ -438,11 +446,13 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
myZoomLevelChanged = false;
}
@Override
public void zoomOut() {
setZoomFactor(getNextZoomOut());
myZoomLevelChanged = true;
}
@Override
public void zoomIn() {
setZoomFactor(getNextZoomIn());
myZoomLevelChanged = true;
@@ -476,11 +486,13 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
return Math.min(factor, getMaximumZoomFactor());
}
@Override
public boolean canZoomOut() {
// Ignore small differences caused by floating-point arithmetic.
return getZoomFactor() - 1.0e-14 > getMinimumZoomFactor();
}
@Override
public boolean canZoomIn() {
return getZoomFactor() < getMaximumZoomFactor();
}
@@ -490,6 +502,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
myZoomLevelChanged = value;
}
@Override
public boolean isZoomLevelChanged() {
return myZoomLevelChanged;
}
@@ -534,6 +547,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
}
private class DocumentChangeListener implements ChangeListener {
@Override
public void stateChanged(@NotNull ChangeEvent e) {
updateImageComponentSize();
@@ -551,6 +565,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
}
private class FocusRequester extends MouseAdapter {
@Override
public void mousePressed(@NotNull MouseEvent e) {
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> IdeFocusManager.getGlobalInstance().requestFocus(ImageEditorUI.this, true));
}
@@ -570,6 +585,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
}
@Override
@Nullable
public Object getData(@NotNull String dataId) {
if (CommonDataKeys.PROJECT.is(dataId)) {
@@ -657,6 +673,7 @@ final class ImageEditorUI extends JPanel implements DataProvider, CopyProvider,
}
private class OptionsChangeListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent evt) {
Options options = (Options) evt.getSource();
EditorOptions editorOptions = options.getEditorOptions();
@@ -61,20 +61,24 @@ final class ImageFileEditorImpl extends UserDataHolderBase implements ImageFileE
((ImageEditorImpl)imageEditor).getComponent().getImageComponent().addPropertyChangeListener(this);
}
@Override
@NotNull
public JComponent getComponent() {
return imageEditor.getComponent();
}
@Override
public JComponent getPreferredFocusedComponent() {
return imageEditor.getContentComponent();
}
@Override
@NotNull
public String getName() {
return NAME;
}
@Override
@NotNull
public FileEditorState getState(@NotNull FileEditorStateLevel level) {
ImageZoomModel zoomModel = imageEditor.getZoomModel();
@@ -85,6 +89,7 @@ final class ImageFileEditorImpl extends UserDataHolderBase implements ImageFileE
zoomModel.isZoomLevelChanged());
}
@Override
public void setState(@NotNull FileEditorState state) {
if (state instanceof ImageFileEditorState) {
Options options = OptionsManager.getInstance().getOptions();
@@ -101,24 +106,30 @@ final class ImageFileEditorImpl extends UserDataHolderBase implements ImageFileE
}
}
@Override
public boolean isModified() {
return false;
}
@Override
public boolean isValid() {
return true;
}
@Override
public void selectNotify() {
}
@Override
public void deselectNotify() {
}
@Override
public void addPropertyChangeListener(@NotNull PropertyChangeListener listener) {
myDispatcher.addListener(listener);
}
@Override
public void removePropertyChangeListener(@NotNull PropertyChangeListener listener) {
myDispatcher.removeListener(listener);
}
@@ -129,21 +140,26 @@ final class ImageFileEditorImpl extends UserDataHolderBase implements ImageFileE
myDispatcher.getMulticaster().propertyChange(editorEvent);
}
@Override
public BackgroundEditorHighlighter getBackgroundHighlighter() {
return null;
}
@Override
public FileEditorLocation getCurrentLocation() {
return null;
}
@Override
public StructureViewBuilder getStructureViewBuilder() {
return null;
}
@Override
public void dispose() {
}
@Override
@NotNull
public ImageEditor getImageEditor() {
return imageEditor;
@@ -40,10 +40,12 @@ final class ImageFileTypeManagerImpl extends ImageFileTypeManager {
private static final String IMAGE_FILE_TYPE_DESCRIPTION = ImagesBundle.message("images.filetype.description");
private static final UserFileType imageFileType = new ImageFileType();
@Override
public boolean isImage(@NotNull VirtualFile file) {
return file.getFileType() == imageFileType || file.getFileType() instanceof SvgFileType;
}
@Override
@NotNull
public FileType getImageFileType() {
return imageFileType;
@@ -61,6 +63,7 @@ final class ImageFileTypeManagerImpl extends ImageFileTypeManager {
}
}
@Override
public void createFileTypes(final @NotNull FileTypeConsumer consumer) {
final Set<String> processed = new THashSet<>();
for (String format : ImageIO.getReaderFormatNames()) {
@@ -44,28 +44,34 @@ final class EditorOptionsImpl implements EditorOptions, JDOMExternalizable {
zoomOptions = new ZoomOptionsImpl(propertyChangeSupport);
}
@Override
public GridOptions getGridOptions() {
return gridOptions;
}
@Override
public TransparencyChessboardOptions getTransparencyChessboardOptions() {
return transparencyChessboardOptions;
}
@Override
public ZoomOptions getZoomOptions() {
return zoomOptions;
}
@Override
public EditorOptions clone() throws CloneNotSupportedException {
return (EditorOptions)super.clone();
}
@Override
public void inject(EditorOptions options) {
gridOptions.inject(options.getGridOptions());
transparencyChessboardOptions.inject(options.getTransparencyChessboardOptions());
zoomOptions.inject(options.getZoomOptions());
}
@Override
public boolean setOption(String name, Object value) {
return gridOptions.setOption(name, value) ||
transparencyChessboardOptions.setOption(name, value) ||
@@ -92,6 +98,7 @@ final class EditorOptionsImpl implements EditorOptions, JDOMExternalizable {
return fileSizeVisible;
}
@Override
public void readExternal(Element element) throws InvalidDataException {
((JDOMExternalizable)gridOptions).readExternal(element);
((JDOMExternalizable)transparencyChessboardOptions).readExternal(element);
@@ -102,6 +109,7 @@ final class EditorOptionsImpl implements EditorOptions, JDOMExternalizable {
fileSizeVisible = fileNameVisibleAttr == null || Boolean.parseBoolean(fileSizeVisibleAttr);
}
@Override
public void writeExternal(Element element) throws WriteExternalException {
((JDOMExternalizable)gridOptions).writeExternal(element);
((JDOMExternalizable)transparencyChessboardOptions).writeExternal(element);
@@ -21,6 +21,7 @@ final class ExternalEditorOptionsImpl implements ExternalEditorOptions, JDOMExte
this.propertyChangeSupport = propertyChangeSupport;
}
@Override
public String getExecutablePath() {
return executablePath;
}
@@ -33,14 +34,17 @@ final class ExternalEditorOptionsImpl implements ExternalEditorOptions, JDOMExte
}
}
@Override
public ExternalEditorOptions clone() throws CloneNotSupportedException {
return (ExternalEditorOptions)super.clone();
}
@Override
public void inject(ExternalEditorOptions options) {
setExecutablePath(options.getExecutablePath());
}
@Override
public boolean setOption(String name, Object value) {
if (ATTR_EXECUTABLE_PATH.equals(name)) {
setExecutablePath((String)value);
@@ -51,10 +55,12 @@ final class ExternalEditorOptionsImpl implements ExternalEditorOptions, JDOMExte
return true;
}
@Override
public void readExternal(Element element) {
executablePath = JDOMExternalizer.readString(element, ATTR_EXECUTABLE_PATH);
}
@Override
public void writeExternal(Element element) {
if (!StringUtil.isEmpty(executablePath)) {
JdomKt.addOptionTag(element, ATTR_EXECUTABLE_PATH, executablePath, "setting");
@@ -38,18 +38,22 @@ final class GridOptionsImpl implements GridOptions, JDOMExternalizable {
this.propertyChangeSupport = propertyChangeSupport;
}
@Override
public boolean isShowDefault() {
return showDefault;
}
@Override
public int getLineZoomFactor() {
return lineMinZoomFactor;
}
@Override
public int getLineSpan() {
return lineSpan;
}
@Override
public Color getLineColor() {
return lineColor;
}
@@ -89,6 +93,7 @@ final class GridOptionsImpl implements GridOptions, JDOMExternalizable {
}
}
@Override
public void inject(GridOptions options) {
setShowDefault(options.isShowDefault());
setLineMinZoomFactor(options.getLineZoomFactor());
@@ -96,6 +101,7 @@ final class GridOptionsImpl implements GridOptions, JDOMExternalizable {
setLineColor(options.getLineColor());
}
@Override
public boolean setOption(String name, Object value) {
if (ATTR_SHOW_DEFAULT.equals(name)) {
setShowDefault((Boolean)value);
@@ -115,6 +121,7 @@ final class GridOptionsImpl implements GridOptions, JDOMExternalizable {
return true;
}
@Override
public void readExternal(Element element) {
showDefault = JDOMExternalizer.readBoolean(element, ATTR_SHOW_DEFAULT);
lineMinZoomFactor = JDOMExternalizer.readInteger(element, ATTR_LINE_ZOOM_FACTOR, DEFAULT_LINE_ZOOM_FACTOR);
@@ -122,6 +129,7 @@ final class GridOptionsImpl implements GridOptions, JDOMExternalizable {
lineColor = JDOMExternalizerEx.readColor(element, ATTR_LINE_COLOR, DEFAULT_LINE_COLOR);
}
@Override
public void writeExternal(Element element) {
JdomKt.addOptionTag(element, ATTR_SHOW_DEFAULT, Boolean.toString(showDefault), "setting");
JdomKt.addOptionTag(element, ATTR_LINE_ZOOM_FACTOR, Integer.toString(lineMinZoomFactor), "setting");
@@ -38,6 +38,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
private static final String DISPLAY_NAME = ImagesBundle.message("settings.page.name");
private ImagesOptionsComponent myComponent;
@Override
public String getDisplayName() {
return DISPLAY_NAME;
}
@@ -47,6 +48,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
return "preferences.images";
}
@Override
public JComponent createComponent() {
if (myComponent == null) {
myComponent = new ImagesOptionsComponent();
@@ -60,6 +62,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
return myComponent.getContentPane();
}
@Override
public void apply() {
if (myComponent != null) {
Options options = OptionsManager.getInstance().getOptions();
@@ -67,6 +70,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
}
}
@Override
public void reset() {
if (myComponent != null) {
Options options = OptionsManager.getInstance().getOptions();
@@ -75,6 +79,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
}
}
@Override
public void disposeUIResources() {
if (myComponent != null) {
Options options = OptionsManager.getInstance().getOptions();
@@ -84,6 +89,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
}
}
@Override
public void propertyChange(PropertyChangeEvent evt) {
Options options = OptionsManager.getInstance().getOptions();
Options uiOptions = myComponent.getOptions();
@@ -95,6 +101,7 @@ public final class ImagesConfigurable extends BaseConfigurableWithChangeSupport
ShowSettingsUtil.getInstance().editConfigurable(project, new ImagesConfigurable());
}
@Override
@NotNull
@NonNls
public String getId() {
@@ -79,7 +79,7 @@ final class ImagesOptionsComponent {
ImagesOptionsComponent() {
wheelZooming.setText(ImagesBundle.message("enable.mousewheel.zooming", SystemInfo.isMac ? "Cmd" : "Ctrl"));
// Setup labels
gridLineZoomFactorLabel.setLabelFor(gridLineZoomFactor);
gridLineSpanLabel.setLabelFor(gridLineSpan);
@@ -137,6 +137,7 @@ final class ImagesOptionsComponent {
this.children = children.clone();
}
@Override
public void itemStateChanged(ItemEvent e) {
setSelected(e.getStateChange() == ItemEvent.SELECTED);
}
@@ -183,6 +184,7 @@ final class ImagesOptionsComponent {
this.name = name;
}
@Override
@SuppressWarnings({"UnnecessaryBoxing"})
public void itemStateChanged(ItemEvent e) {
options.setOption(name, Boolean.valueOf(ItemEvent.SELECTED == e.getStateChange()));
@@ -196,6 +198,7 @@ final class ImagesOptionsComponent {
this.name = name;
}
@Override
public void stateChanged(ChangeEvent e) {
JSpinner source = (JSpinner)e.getSource();
options.setOption(name, source.getValue());
@@ -209,6 +212,7 @@ final class ImagesOptionsComponent {
this.name = name;
}
@Override
public void actionPerformed(ActionEvent e) {
ColorPanel source = (ColorPanel)e.getSource();
options.setOption(name, source.getSelectedColor());
@@ -222,6 +226,7 @@ final class ImagesOptionsComponent {
this.name = name;
}
@Override
protected void textChanged(DocumentEvent documentEvent) {
Document document = documentEvent.getDocument();
Position startPosition = document.getStartPosition();
@@ -235,6 +240,7 @@ final class ImagesOptionsComponent {
}
private final class ExternalEditorPathActionListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
Application application = ApplicationManager.getApplication();
VirtualFile previous = application.runWriteAction((NullableComputable<VirtualFile>)() -> {
@@ -46,44 +46,54 @@ final class OptionsImpl implements Options, JDOMExternalizable {
externalEditorOptions = new ExternalEditorOptionsImpl(propertyChangeSupport);
}
@Override
public EditorOptions getEditorOptions() {
return editorOptions;
}
@Override
public ExternalEditorOptions getExternalEditorOptions() {
return externalEditorOptions;
}
@Override
public void inject(Options options) {
editorOptions.inject(options.getEditorOptions());
externalEditorOptions.inject(options.getExternalEditorOptions());
}
@Override
public void addPropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(listener);
}
@Override
public void addPropertyChangeListener(String propertyName, PropertyChangeListener listener) {
propertyChangeSupport.addPropertyChangeListener(propertyName, listener);
}
@Override
public void removePropertyChangeListener(PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(listener);
}
@Override
public void removePropertyChangeListener(String propertyName, PropertyChangeListener listener) {
propertyChangeSupport.removePropertyChangeListener(propertyName, listener);
}
@Override
public boolean setOption(String name, Object value) {
return editorOptions.setOption(name, value) || externalEditorOptions.setOption(name, value);
}
@Override
public void readExternal(Element element) throws InvalidDataException {
((JDOMExternalizable)editorOptions).readExternal(element);
((JDOMExternalizable)externalEditorOptions).readExternal(element);
}
@Override
public void writeExternal(Element element) throws WriteExternalException {
((JDOMExternalizable)editorOptions).writeExternal(element);
((JDOMExternalizable)externalEditorOptions).writeExternal(element);
@@ -40,18 +40,22 @@ final class TransparencyChessboardOptionsImpl implements TransparencyChessboardO
this.propertyChangeSupport = propertyChangeSupport;
}
@Override
public boolean isShowDefault() {
return showDefault;
}
@Override
public int getCellSize() {
return cellSize;
}
@Override
public Color getWhiteColor() {
return whiteColor;
}
@Override
public Color getBlackColor() {
return blackColor;
}
@@ -94,6 +98,7 @@ final class TransparencyChessboardOptionsImpl implements TransparencyChessboardO
}
}
@Override
public void inject(TransparencyChessboardOptions options) {
setShowDefault(options.isShowDefault());
setCellSize(options.getCellSize());
@@ -101,6 +106,7 @@ final class TransparencyChessboardOptionsImpl implements TransparencyChessboardO
setBlackColor(options.getBlackColor());
}
@Override
public boolean setOption(String name, Object value) {
if (ATTR_SHOW_DEFAULT.equals(name)) {
setShowDefault((Boolean)value);
@@ -120,6 +126,7 @@ final class TransparencyChessboardOptionsImpl implements TransparencyChessboardO
return true;
}
@Override
public void readExternal(Element element) {
setShowDefault(JDOMExternalizer.readBoolean(element, ATTR_SHOW_DEFAULT));
setCellSize(JDOMExternalizer.readInteger(element, ATTR_CELL_SIZE, DEFAULT_CELL_SIZE));
@@ -127,6 +134,7 @@ final class TransparencyChessboardOptionsImpl implements TransparencyChessboardO
setBlackColor(JDOMExternalizerEx.readColor(element, ATTR_BLACK_COLOR, DEFAULT_BLACK_COLOR));
}
@Override
public void writeExternal(Element element) {
JdomKt.addOptionTag(element, ATTR_SHOW_DEFAULT, Boolean.toString(showDefault), "setting");
JdomKt.addOptionTag(element, ATTR_CELL_SIZE, Integer.toString(cellSize), "setting");
@@ -38,14 +38,17 @@ final class ZoomOptionsImpl implements ZoomOptions, JDOMExternalizable {
this.propertyChangeSupport = propertyChangeSupport;
}
@Override
public boolean isWheelZooming() {
return wheelZooming;
}
@Override
public boolean isSmartZooming() {
return smartZooming;
}
@Override
public Dimension getPrefferedSize() {
return new Dimension(prefferedWidth, prefferedHeight);
}
@@ -90,12 +93,14 @@ final class ZoomOptionsImpl implements ZoomOptions, JDOMExternalizable {
}
}
@Override
public void inject(ZoomOptions options) {
setWheelZooming(options.isWheelZooming());
setSmartZooming(options.isSmartZooming());
setPrefferedSize(options.getPrefferedSize());
}
@Override
public boolean setOption(String name, Object value) {
if (ATTR_WHEEL_ZOOMING.equals(name)) {
setWheelZooming((Boolean)value);
@@ -115,6 +120,7 @@ final class ZoomOptionsImpl implements ZoomOptions, JDOMExternalizable {
return true;
}
@Override
public void readExternal(Element element) {
setWheelZooming(JDOMExternalizer.readBoolean(element, ATTR_WHEEL_ZOOMING));
setSmartZooming(JDOMExternalizer.readBoolean(element, ATTR_SMART_ZOOMING));
@@ -122,6 +128,7 @@ final class ZoomOptionsImpl implements ZoomOptions, JDOMExternalizable {
setPrefferedHeight(JDOMExternalizer.readInteger(element, ATTR_PREFFERED_HEIGHT, DEFAULT_PREFFERED_SIZE.height));
}
@Override
public void writeExternal(Element element) {
JdomKt.addOptionTag(element, ATTR_WHEEL_ZOOMING, Boolean.toString(wheelZooming), "setting");
JdomKt.addOptionTag(element, ATTR_SMART_ZOOMING, Boolean.toString(smartZooming), "setting");
@@ -18,11 +18,11 @@ package org.intellij.images.thumbnail.actions;
import com.intellij.openapi.actionSystem.AnAction;
import com.intellij.openapi.actionSystem.AnActionEvent;
import com.intellij.openapi.actionSystem.Presentation;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.fileEditor.FileEditorManager;
import com.intellij.openapi.vfs.VirtualFile;
import org.intellij.images.fileTypes.ImageFileTypeManager;
import org.intellij.images.thumbnail.ThumbnailView;
import org.intellij.images.thumbnail.actionSystem.ThumbnailViewActionUtil;
import org.intellij.images.fileTypes.ImageFileTypeManager;
import org.jetbrains.annotations.NotNull;
/**
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull;
* @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
*/
public final class EnterAction extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
if (view != null) {
@@ -49,6 +50,7 @@ public final class EnterAction extends AnAction {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
if (ThumbnailViewActionUtil.setEnabled(e)) {
@@ -37,6 +37,7 @@ public final class FilterByTagActionGroup extends ActionGroup implements PopupAc
setPopup(true);
}
@Override
public void update(@NotNull final AnActionEvent e) {
Project project = e.getProject();
if (project == null) {
@@ -29,11 +29,12 @@ import javax.swing.*;
import java.util.Arrays;
public final class FilterByThemeComboBoxAction extends ComboBoxAction {
@Override
public void update(@NotNull final AnActionEvent e) {
Project project = e.getProject();
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
boolean hasApplicableExtension =
boolean hasApplicableExtension =
Arrays.stream(ThemeFilter.EP_NAME.getExtensions())
.allMatch(filter -> project != null && filter.isApplicableToProject(project));
e.getPresentation().setVisible(view != null && hasApplicableExtension);
@@ -30,6 +30,7 @@ import org.jetbrains.annotations.NotNull;
* @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
*/
public final class HideThumbnailsAction extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
if (view != null) {
@@ -37,6 +38,7 @@ public final class HideThumbnailsAction extends AnAction {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
ThumbnailViewActionUtil.setEnabled(e);
@@ -23,11 +23,13 @@ import org.intellij.images.ui.ImageComponentDecorator;
import org.jetbrains.annotations.NotNull;
public final class ToggleFileNameAction extends ToggleAction {
@Override
public boolean isSelected(AnActionEvent e) {
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
return decorator != null && decorator.isEnabledForActionPlace(e.getPlace()) && decorator.isFileNameVisible();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
if (decorator != null && decorator.isEnabledForActionPlace(e.getPlace())) {
@@ -36,6 +38,7 @@ public final class ToggleFileNameAction extends ToggleAction {
}
}
@Override
public void update(@NotNull final AnActionEvent e) {
super.update(e);
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
@@ -23,11 +23,13 @@ import org.intellij.images.ui.ImageComponentDecorator;
import org.jetbrains.annotations.NotNull;
public final class ToggleFileSizeAction extends ToggleAction {
@Override
public boolean isSelected(AnActionEvent e) {
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
return decorator != null && decorator.isEnabledForActionPlace(e.getPlace()) && decorator.isFileSizeVisible();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
if (decorator != null && decorator.isEnabledForActionPlace(e.getPlace())) {
@@ -36,6 +38,7 @@ public final class ToggleFileSizeAction extends ToggleAction {
}
}
@Override
public void update(@NotNull final AnActionEvent e) {
super.update(e);
ImageComponentDecorator decorator = ImageComponentDecorator.DATA_KEY.getData(e.getDataContext());
@@ -30,11 +30,13 @@ import org.jetbrains.annotations.NotNull;
* @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
*/
public final class ToggleRecursiveAction extends ToggleAction {
@Override
public boolean isSelected(AnActionEvent e) {
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
return view != null && view.isRecursive();
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
if (view != null) {
@@ -42,6 +44,7 @@ public final class ToggleRecursiveAction extends ToggleAction {
}
}
@Override
public void update(@NotNull final AnActionEvent e) {
super.update(e);
ThumbnailViewActionUtil.setEnabled(e);
@@ -27,11 +27,13 @@ import org.jetbrains.annotations.NotNull;
public final class ToggleTagsPanelAction extends ToggleAction {
public static final String TAGS_PANEL_VISIBLE = "tags.panel.visible";
public static final String TAGS_PANEL_PROPORTION = "tags.panel.proportion";
@Override
public boolean isSelected(AnActionEvent e) {
Project project = e.getProject();
return project != null && PropertiesComponent.getInstance(project).getBoolean(TAGS_PANEL_VISIBLE, false);
}
@Override
public void setSelected(AnActionEvent e, boolean state) {
PropertiesComponent.getInstance(e.getProject()).setValue(TAGS_PANEL_VISIBLE, state);
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
@@ -39,6 +41,7 @@ public final class ToggleTagsPanelAction extends ToggleAction {
view.refresh();
}
@Override
public void update(@NotNull final AnActionEvent e) {
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
e.getPresentation().setEnabledAndVisible(view != null);
@@ -31,6 +31,7 @@ import org.jetbrains.annotations.NotNull;
* @author <a href="mailto:aefimov.box@gmail.com">Alexey Efimov</a>
*/
public final class UpFolderAction extends AnAction {
@Override
public void actionPerformed(@NotNull AnActionEvent e) {
ThumbnailView view = ThumbnailViewActionUtil.getVisibleThumbnailView(e);
if (view != null) {
@@ -44,6 +45,7 @@ public final class UpFolderAction extends AnAction {
}
}
@Override
public void update(@NotNull AnActionEvent e) {
super.update(e);
if (ThumbnailViewActionUtil.setEnabled(e)) {
@@ -35,6 +35,7 @@ final class ThumbnailManagerImpl extends ThumbnailManager implements Disposable
this.project = project;
}
@Override
@NotNull
public final ThumbnailView getThumbnailView() {
if (thumbnailView == null) {
@@ -43,6 +44,7 @@ final class ThumbnailManagerImpl extends ThumbnailManager implements Disposable
return thumbnailView;
}
@Override
public void dispose() {
if (thumbnailView != null) {
Disposer.dispose(thumbnailView);
@@ -17,8 +17,8 @@ package org.intellij.images.thumbnail.impl;
import com.intellij.ide.SelectInContext;
import com.intellij.ide.SelectInTarget;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.vfs.VirtualFile;
import org.intellij.images.fileTypes.ImageFileTypeManager;
import org.intellij.images.thumbnail.ThumbnailManager;
import org.intellij.images.thumbnail.ThumbnailView;
@@ -51,6 +51,7 @@ final class ThumbnailSelectInTarget implements SelectInTarget {
return getToolWindowId();
}
@Override
public String getToolWindowId() {
return ThumbnailView.TOOLWINDOW_ID;
}
@@ -60,6 +61,7 @@ final class ThumbnailSelectInTarget implements SelectInTarget {
return null;
}
@Override
public float getWeight() {
return 10;
}
@@ -50,34 +50,41 @@ final class ThumbnailViewImpl implements ThumbnailView {
return myThubmnailViewUi;
}
@Override
public void setRoot(@NotNull VirtualFile root) {
this.root = root;
updateUI();
}
@Override
public VirtualFile getRoot() {
return root;
}
@Override
public boolean isRecursive() {
return recursive;
}
@Override
public void setRecursive(boolean recursive) {
this.recursive = recursive;
updateUI();
}
@Override
public void setSelected(@NotNull VirtualFile file, boolean selected) {
if (isVisible()) {
getUI().setSelected(file, selected);
}
}
@Override
public boolean isSelected(@NotNull VirtualFile file) {
return isVisible() && getUI().isSelected(file);
}
@Override
@NotNull
public VirtualFile[] getSelection() {
if (isVisible()) {
@@ -86,6 +93,7 @@ final class ThumbnailViewImpl implements ThumbnailView {
return VirtualFile.EMPTY_ARRAY;
}
@Override
public void scrollToSelection() {
if (isVisible()) {
if (!toolWindow.isActive()) {
@@ -97,10 +105,12 @@ final class ThumbnailViewImpl implements ThumbnailView {
}
}
@Override
public boolean isVisible() {
return toolWindow.isAvailable();
}
@Override
public void activate() {
if (isVisible() && !toolWindow.isActive()) {
toolWindow.activate(null);
@@ -130,6 +140,7 @@ final class ThumbnailViewImpl implements ThumbnailView {
return myTagFilters;
}
@Override
public void setVisible(boolean visible) {
toolWindow.setAvailable(visible, null);
if (visible) {
@@ -157,21 +168,25 @@ final class ThumbnailViewImpl implements ThumbnailView {
toolWindow.setTitle(root != null ? IfsUtil.getReferencePath(project, root) : null);
}
@Override
@NotNull
public Project getProject() {
return project;
}
@Override
public void setTransparencyChessboardVisible(boolean visible) {
if (isVisible()) {
getUI().setTransparencyChessboardVisible(visible);
}
}
@Override
public boolean isTransparencyChessboardVisible() {
return isVisible() && getUI().isTransparencyChessboardVisible();
}
@Override
public boolean isEnabledForActionPlace(String place) {
// Enable if it not for Editor
return isVisible() && !ImageEditorActions.ACTION_PLACE.equals(place);
@@ -201,6 +216,7 @@ final class ThumbnailViewImpl implements ThumbnailView {
}
}
@Override
public void dispose() {
// Dispose UI
Disposer.dispose(getUI());
@@ -224,6 +240,7 @@ final class ThumbnailViewImpl implements ThumbnailView {
}
private final class LazyScroller implements Runnable {
@Override
public void run() {
SwingUtilities.invokeLater(() -> getUI().scrollToSelection());
}
@@ -67,8 +67,8 @@ import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.util.*;
import java.util.List;
import java.util.*;
final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
private final VirtualFileListener vfsListener = new VFSListener();
@@ -245,7 +245,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
commonTags.retainAll(tags);
}
}
if (commonTags != null) {
commonTags.forEach(listModel::addElement);
}
@@ -291,24 +291,24 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
cellRenderer.getImageComponent().setTransparencyChessboardVisible(visible);
list.repaint();
}
public void setFileNameVisible(boolean visible) {
createUI();
cellRenderer.getImageComponent().setFileNameVisible(visible);
list.repaint();
}
public boolean isFileNameVisible() {
createUI();
return cellRenderer.getImageComponent().isFileNameVisible();
}
public void setFileSizeVisible(boolean visible) {
createUI();
cellRenderer.getImageComponent().setFileSizeVisible(visible);
list.repaint();
}
public boolean isFileSizeVisible() {
createUI();
return cellRenderer.getImageComponent().isFileSizeVisible();
@@ -351,6 +351,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
implements ListCellRenderer {
private final ImageFileTypeManager typeManager = ImageFileTypeManager.getInstance();
@Override
public Component getListCellRendererComponent(
JList list, Object value, int index, boolean isSelected, boolean cellHasFocus
) {
@@ -461,6 +462,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
private final class ThumbnailsMouseAdapter extends MouseAdapter implements MouseMotionListener {
@Override
public void mouseDragged(MouseEvent e) {
Point point = e.getPoint();
int index = list.locationToIndex(point);
@@ -474,10 +476,12 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
}
@Override
public void mouseMoved(MouseEvent e) {
}
@Override
public void mousePressed(MouseEvent e) {
Point point = e.getPoint();
int index = list.locationToIndex(point);
@@ -490,6 +494,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
}
@Override
public void mouseClicked(MouseEvent e) {
Point point = e.getPoint();
int index = list.locationToIndex(point);
@@ -538,6 +543,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
}
@Override
@Nullable
public Object getData(@NotNull String dataId) {
if (CommonDataKeys.PROJECT.is(dataId)) {
@@ -614,6 +620,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
return VirtualFile.EMPTY_ARRAY;
}
@Override
public void dispose() {
removeAll();
@@ -634,6 +641,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
this.file = file;
}
@Override
public void navigate(boolean requestFocus) {
if (file != null) {
FileEditorManager manager = FileEditorManager.getInstance(thumbnailView.getProject());
@@ -641,10 +649,12 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
}
@Override
public boolean canNavigate() {
return file != null;
}
@Override
public boolean canNavigateToSource() {
return file != null;
}
@@ -692,6 +702,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
private final class OptionsChangeListener implements PropertyChangeListener {
@Override
public void propertyChange(PropertyChangeEvent evt) {
Options options = (Options) evt.getSource();
EditorOptions editorOptions = options.getEditorOptions();
@@ -709,6 +720,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
private class FocusRequester extends MouseAdapter {
@Override
public void mouseClicked(MouseEvent e) {
IdeFocusManager.getGlobalInstance().doWhenFocusSettlesDown(() -> {
IdeFocusManager.getGlobalInstance().requestFocus(ThumbnailViewUI.this, true);
@@ -720,7 +732,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
public AddTagGroup() {
setPopup(true);
}
@NotNull
@Override
public AnAction[] getChildren(@Nullable AnActionEvent e) {
@@ -741,7 +753,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
updateTagsPreviewModel();
}
@Override
public void update(@NotNull AnActionEvent e) {
e.getPresentation().setEnabledAndVisible(Arrays.stream(thumbnailView.getSelection()).noneMatch(file -> tagManager.hasTag(tag, file)));
@@ -765,7 +777,7 @@ final class ThumbnailViewUI extends JPanel implements DataProvider, Disposable {
}
}
};
return actions;
}
}
@@ -235,10 +235,12 @@ public class ImageComponent extends JComponent {
return new Dimension(size.width - IMAGE_INSETS * 2, size.height - IMAGE_INSETS * 2);
}
@Override
public String getUIClassID() {
return uiClassID;
}
@Override
public void updateUI() {
boolean customUI = UIManager.getDefaults().get(uiClassID) != null;
setUI(customUI ? UIManager.getUI(this) : new ImageComponentUI(this));
@@ -267,6 +269,7 @@ public class ImageComponent extends JComponent {
});
}
@Override
public Image getRenderer() {
return renderer;
}
@@ -294,6 +297,7 @@ public class ImageComponent extends JComponent {
return imageProvider != null ? imageProvider.apply(scale, myComponent) : null;
}
@Override
public void setValue(BufferedImage image) {
this.renderer = image != null ? Toolkit.getDefaultToolkit().createImage(image.getSource()) : null;
setValue(image != null ? (scale, anchor) -> image : null);
@@ -310,11 +314,13 @@ public class ImageComponent extends JComponent {
fireChangeEvent(new ChangeEvent(this));
}
@Override
public String getFormat() {
return format;
}
@Override
public void setFormat(String format) {
this.format = format;
fireChangeEvent(new ChangeEvent(this));
@@ -326,10 +332,12 @@ public class ImageComponent extends JComponent {
}
}
@Override
public void addChangeListener(ChangeListener listener) {
listeners.add(listener);
}
@Override
public void removeChangeListener(ChangeListener listener) {
listeners.remove(listener);
}
@@ -134,10 +134,12 @@ public class ThumbnailComponent extends JComponent {
return StringUtil.formatFileSize(fileSize);
}
@Override
public void updateUI() {
setUI(UIManager.getUI(this));
}
@Override
public String getUIClassID() {
return uiClassID;
}
@@ -50,6 +50,7 @@ public class ThumbnailComponentUI extends ComponentUI {
private static final ThumbnailComponentUI ui = new ThumbnailComponentUI();
@Override
public void paint(Graphics g, JComponent c) {
ThumbnailComponent tc = (ThumbnailComponent) c;
if (tc != null) {
@@ -88,7 +89,7 @@ public class ThumbnailComponentUI extends ComponentUI {
ImageComponent imageComponent = tc.getImageComponent();
// Paint blank
if (imageComponent.isFileSizeVisible()) ImagesIcons.ThumbnailBlank.paintIcon(tc, g, 5, 5);
ImageDocument document = imageComponent.getDocument();
BufferedImage image = document.getValue();
if (image != null) {
@@ -267,6 +268,7 @@ public class ThumbnailComponentUI extends ComponentUI {
return labelFont.deriveFont(labelFont.getSize2D() - 2.0f);
}
@Override
public Dimension getPreferredSize(JComponent c) {
Font labelFont = UIUtil.getLabelFont();
FontMetrics fontMetrics = c.getFontMetrics(labelFont);
@@ -66,10 +66,12 @@ public class CommonsImagingImageReaderSpi extends ImageReaderSpi {
}
}
@Override
public String getDescription(Locale locale) {
return "Apache Commons Imaging adapter reader";
}
@Override
public boolean canDecodeInput(Object input) throws IOException {
if (!(input instanceof ImageInputStream)) {
return false;
@@ -88,6 +90,7 @@ public class CommonsImagingImageReaderSpi extends ImageReaderSpi {
}
}
@Override
public ImageReader createReaderInstance(Object extension) {
return new MyImageReader(this, myFormat.get());
}
@@ -7,8 +7,8 @@ import com.intellij.compiler.instrumentation.InstrumentationClassFinder;
import com.intellij.uiDesigner.UIFormXmlConstants;
import com.intellij.uiDesigner.lw.*;
import com.intellij.uiDesigner.shared.BorderType;
import org.jetbrains.org.objectweb.asm.*;
import org.jetbrains.org.objectweb.asm.Label;
import org.jetbrains.org.objectweb.asm.*;
import org.jetbrains.org.objectweb.asm.commons.GeneratorAdapter;
import org.jetbrains.org.objectweb.asm.commons.Method;
@@ -17,8 +17,8 @@ import javax.swing.border.Border;
import java.awt.*;
import java.io.*;
import java.lang.reflect.Modifier;
import java.util.*;
import java.util.List;
import java.util.*;
/**
* @author yole
@@ -232,6 +232,7 @@ public class AsmCodeGenerator {
myExplicitSetupCall = explicitSetupCall;
}
@Override
public void visit(final int version,
final int access,
final String name,
@@ -251,6 +252,7 @@ public class AsmCodeGenerator {
return myClassName;
}
@Override
public MethodVisitor visitMethod(final int access, final String name, final String desc, final String signature, final String[] exceptions) {
if (name.equals(SETUP_METHOD_NAME) || name.equals(GET_ROOT_COMPONENT_METHOD_NAME) ||
@@ -274,12 +276,14 @@ public class AsmCodeGenerator {
return methodVisitor != null? new FailSafeMethodVisitor(ASM_API_VERSION, methodVisitor) : null;
}
@Override
public FieldVisitor visitField(final int access, final String name, final String desc, final String signature, final Object value) {
myFieldDescMap.put(name, desc);
myFieldAccessMap.put(name, new Integer(access));
return super.visitField(access, name, desc, signature, value);
}
@Override
public void visitEnd() {
final boolean haveCustomCreateComponents = Utils.getCustomCreateComponentCount(myRootContainer) > 0 &&
!myIgnoreCustomCreation;
@@ -904,6 +908,7 @@ public class AsmCodeGenerator {
mySuperName = superName;
}
@Override
public void visitFieldInsn(final int opcode, final String owner, final String name, final String desc) {
if (opcode == Opcodes.GETFIELD && !mySetupCalled && !callsSelfConstructor && Utils.isBoundField(myRootContainer, name)) {
callSetupUI();
@@ -911,6 +916,7 @@ public class AsmCodeGenerator {
super.visitFieldInsn(opcode, owner, name, desc);
}
@Override
public void visitMethodInsn(final int opcode, final String owner, final String name, final String desc, boolean itf) {
if (opcode == Opcodes.INVOKESPECIAL && name.equals(CONSTRUCTOR_NAME)) {
if (owner.equals(myClassName)) {
@@ -929,6 +935,7 @@ public class AsmCodeGenerator {
super.visitMethodInsn(opcode, owner, name, desc, itf);
}
@Override
public void visitJumpInsn(final int opcode, final Label label) {
if (mySuperCalled) {
callSetupUI();
@@ -944,6 +951,7 @@ public class AsmCodeGenerator {
}
}
@Override
public void visitInsn(final int opcode) {
if (opcode == Opcodes.RETURN && !mySetupCalled && !callsSelfConstructor) {
callSetupUI();
@@ -959,6 +967,7 @@ public class AsmCodeGenerator {
super(ASM_API_VERSION, new ClassVisitor(ASM_API_VERSION) {});
}
@Override
public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
if (name.equals(CONSTRUCTOR_NAME)) {
return new FirstPassConstructorVisitor();
@@ -975,6 +984,7 @@ public class AsmCodeGenerator {
super(ASM_API_VERSION, new MethodVisitor(ASM_API_VERSION){});
}
@Override
public void visitMethodInsn(int opcode, String owner, String name, String desc, boolean itf) {
if (name.equals(SETUP_METHOD_NAME)) {
myExplicitSetupCall = true;
@@ -34,6 +34,7 @@ public class CardLayoutCodeGenerator extends SimpleLayoutCodeGenerator {
super(Type.getType(CardLayout.class));
}
@Override
public void generateComponentLayout(LwComponent lwComponent,
GeneratorAdapter generator,
int componentLocal,
@@ -35,6 +35,7 @@ public class ColorPropertyCodeGenerator extends PropertyCodeGenerator {
private static final Method ourInitMethod = Method.getMethod("void <init>(int)");
private static final Method ourGetColorMethod = new Method("getColor", ourColorType, new Type[] { ourObjectType } );
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
ColorDescriptor descriptor = (ColorDescriptor) value;
if (descriptor.getColor() != null) {
@@ -29,6 +29,7 @@ public class DimensionPropertyCodeGenerator extends PropertyCodeGenerator {
private static final Type myDimensionType = Type.getType(Dimension.class);
private static final Method myInitMethod = Method.getMethod("void <init>(int,int)");
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
Dimension dimension = (Dimension) value;
generator.newInstance(myDimensionType);
@@ -23,6 +23,7 @@ import org.jetbrains.org.objectweb.asm.commons.GeneratorAdapter;
* @author yole
*/
public class EnumPropertyCodeGenerator extends PropertyCodeGenerator {
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
final Type enumType = Type.getType(value.getClass());
generator.getStatic(enumType, value.toString(), enumType);
@@ -31,6 +31,7 @@ public class FlowLayoutCodeGenerator extends LayoutCodeGenerator {
private static final Type ourFlowLayoutType = Type.getType(FlowLayout.class);
private static final Method ourConstructor = Method.getMethod("void <init>(int,int,int)");
@Override
public void generateContainerLayout(final LwContainer lwContainer, final GeneratorAdapter generator, final int componentLocal) {
generator.loadLocal(componentLocal);
@@ -44,6 +45,7 @@ public class FlowLayoutCodeGenerator extends LayoutCodeGenerator {
generator.invokeVirtual(ourContainerType, ourSetLayoutMethod);
}
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -43,6 +43,7 @@ public class FontPropertyCodeGenerator extends PropertyCodeGenerator {
private static final Method ourGetStyleMethod = new Method("getStyle", Type.INT_TYPE, new Type[0]);
private static final Method ourCanDisplay = new Method("canDisplay", Type.BOOLEAN_TYPE, new Type[]{Type.CHAR_TYPE});
@Override
public boolean generateCustomSetValue(final LwComponent lwComponent,
final InstrumentationClassFinder.PseudoClass componentClass,
final LwIntrospectedProperty property,
@@ -97,6 +98,7 @@ public class FontPropertyCodeGenerator extends PropertyCodeGenerator {
}
}
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
throw new IllegalStateException("Unknown font type");
}
@@ -43,6 +43,7 @@ public class FormLayoutCodeGenerator extends LayoutCodeGenerator {
public static String[] HORZ_ALIGN_FIELDS = new String[] { "LEFT", "CENTER", "RIGHT", "FILL" };
public static String[] VERT_ALIGN_FIELDS = new String[] { "TOP", "CENTER", "BOTTOM", "FILL" };
@Override
public void generateContainerLayout(final LwContainer lwContainer, final GeneratorAdapter generator, final int componentLocal) {
FormLayout formLayout = (FormLayout) lwContainer.getLayout();
@@ -85,6 +86,7 @@ public class FormLayoutCodeGenerator extends LayoutCodeGenerator {
generator.invokeVirtual(ourFormLayoutType, setGroupsMethod);
}
@Override
public void generateComponentLayout(final LwComponent lwComponent, final GeneratorAdapter generator, final int componentLocal, final int parentLocal) {
generator.loadLocal(parentLocal);
generator.loadLocal(componentLocal);
@@ -35,6 +35,7 @@ public class GridBagLayoutCodeGenerator extends LayoutCodeGenerator {
private static final Type myPanelType = Type.getType(JPanel.class);
@Override
public String mapComponentClass(final String componentClassName) {
if (componentClassName.equals(Spacer.class.getName())) {
return JPanel.class.getName();
@@ -42,6 +43,7 @@ public class GridBagLayoutCodeGenerator extends LayoutCodeGenerator {
return super.mapComponentClass(componentClassName);
}
@Override
public void generateContainerLayout(final LwContainer lwContainer, final GeneratorAdapter generator, final int componentLocal) {
generator.loadLocal(componentLocal);
@@ -64,6 +66,7 @@ public class GridBagLayoutCodeGenerator extends LayoutCodeGenerator {
}
@Override
public void generateComponentLayout(final LwComponent component,
final GeneratorAdapter generator,
final int componentLocal,
@@ -37,6 +37,7 @@ public class GridLayoutCodeGenerator extends LayoutCodeGenerator {
public static GridLayoutCodeGenerator INSTANCE = new GridLayoutCodeGenerator();
@Override
public void generateContainerLayout(final LwContainer lwContainer, final GeneratorAdapter generator, final int componentLocal) {
if (lwContainer.isGrid()) {
// arg 0: object
@@ -60,6 +61,7 @@ public class GridLayoutCodeGenerator extends LayoutCodeGenerator {
}
}
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -33,6 +33,7 @@ public class IconPropertyCodeGenerator extends PropertyCodeGenerator {
private static final Type ourObjectType = Type.getType(Object.class);
private static final Type ourClassType = Type.getType(Class.class);
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
IconDescriptor descriptor = (IconDescriptor) value;
generator.newInstance(ourImageIconType);
@@ -27,6 +27,7 @@ import java.awt.*;
public class InsetsPropertyCodeGenerator extends PropertyCodeGenerator {
private final Type myInsetsType = Type.getType(Insets.class);
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
final Insets insets = (Insets)value;
generator.newInstance(myInsetsType);
@@ -32,6 +32,7 @@ public class ListModelPropertyCodeGenerator extends PropertyCodeGenerator {
myListModelType = Type.getType(aClass);
}
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
String[] items = (String[]) value;
int listModelLocal = generator.newLocal(myListModelType);
@@ -28,6 +28,7 @@ public class RectanglePropertyCodeGenerator extends PropertyCodeGenerator {
private static final Type myRectangleType = Type.getType(Rectangle.class);
private static final Method myInitMethod = Method.getMethod("void <init>(int,int,int,int)");
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
final Rectangle rc = (Rectangle) value;
generator.newInstance(myRectangleType);
@@ -30,6 +30,7 @@ public class ScrollPaneLayoutCodeGenerator extends LayoutCodeGenerator {
private final Type myScrollPaneType = Type.getType(JScrollPane.class);
private final Method mySetViewportViewMethod = Method.getMethod("void setViewportView(java.awt.Component)");
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -35,6 +35,7 @@ public class SimpleLayoutCodeGenerator extends LayoutCodeGenerator {
myLayoutType = layoutType;
}
@Override
public void generateContainerLayout(final LwContainer lwContainer, final GeneratorAdapter generator, final int componentLocal) {
generator.loadLocal(componentLocal);
@@ -48,6 +49,7 @@ public class SimpleLayoutCodeGenerator extends LayoutCodeGenerator {
generator.invokeVirtual(ourContainerType, ourSetLayoutMethod);
}
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -31,6 +31,7 @@ public class SplitPaneLayoutCodeGenerator extends LayoutCodeGenerator {
private final Method mySetLeftMethod = Method.getMethod("void setLeftComponent(java.awt.Component)");
private final Method mySetRightMethod = Method.getMethod("void setRightComponent(java.awt.Component)");
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -49,6 +49,7 @@ public class StringPropertyCodeGenerator extends PropertyCodeGenerator implement
private final Set myClassesRequiringLoadButtonText = new HashSet();
private boolean myHaveSetDisplayedMnemonicIndex = false;
@Override
public void generateClassStart(AsmCodeGenerator.FormClassVisitor visitor, final String name, final InstrumentationClassFinder classFinder) {
myClassesRequiringLoadLabelText.remove(name);
myClassesRequiringLoadButtonText.remove(name);
@@ -63,6 +64,7 @@ public class StringPropertyCodeGenerator extends PropertyCodeGenerator implement
}
}
@Override
public boolean generateCustomSetValue(final LwComponent lwComponent,
final InstrumentationClassFinder.PseudoClass componentClass,
final LwIntrospectedProperty property,
@@ -132,6 +134,7 @@ public class StringPropertyCodeGenerator extends PropertyCodeGenerator implement
return false;
}
@Override
public void generatePushValue(final GeneratorAdapter generator, final Object value) {
StringDescriptor descriptor = (StringDescriptor) value;
if (descriptor == null) {
@@ -148,6 +151,7 @@ public class StringPropertyCodeGenerator extends PropertyCodeGenerator implement
}
}
@Override
public void generateClassEnd(AsmCodeGenerator.FormClassVisitor visitor) {
if (myClassesRequiringLoadLabelText.contains(visitor.getClassName())) {
generateLoadTextMethod(visitor, AsmCodeGenerator.LOAD_LABEL_TEXT_METHOD, "javax/swing/JLabel", "setDisplayedMnemonic");
@@ -32,6 +32,7 @@ public class TabbedPaneLayoutCodeGenerator extends LayoutCodeGenerator {
private final Method mySetDisabledIconAtMethod = Method.getMethod("void setDisabledIconAt(int,javax.swing.Icon)");
private final Method mySetEnabledAtMethod = Method.getMethod("void setEnabledAt(int,boolean)");
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -26,6 +26,7 @@ import org.jetbrains.org.objectweb.asm.commons.Method;
public class ToolBarLayoutCodeGenerator extends LayoutCodeGenerator {
private final static Method ourAddMethod = Method.getMethod("java.awt.Component add(java.awt.Component)");
@Override
public void generateComponentLayout(final LwComponent lwComponent,
final GeneratorAdapter generator,
final int componentLocal,
@@ -115,6 +115,7 @@ public final class Utils {
final String[] className = new String[]{null};
try {
SAX_PARSER.parse(new InputSource(new StringReader(formFileContent)), new DefaultHandler() {
@Override
public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
if ("form".equals(qName)) {
className[0] = attributes.getValue("", "bind-to-class");
@@ -219,6 +220,7 @@ public final class Utils {
final CodeGenerationException[] validateExceptions = new CodeGenerationException[1];
final RecursiveFormNestingException[] recursiveNestingExceptions = new RecursiveFormNestingException[1];
rootContainer.accept(new ComponentVisitor() {
@Override
public boolean visit(final IComponent component) {
if (component instanceof LwNestedForm) {
LwNestedForm nestedForm = (LwNestedForm)component;
@@ -292,6 +294,7 @@ public final class Utils {
final int[] result = new int[1];
result[0] = 0;
container.accept(new ComponentVisitor() {
@Override
public boolean visit(IComponent c) {
if (c.isCustomCreate()) {
result[0]++;
@@ -16,8 +16,8 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
import java.awt.*;
@@ -30,12 +30,14 @@ public class BorderLayoutSerializer extends LayoutSerializer {
private BorderLayoutSerializer() {
}
@Override
void readLayout(Element element, LwContainer container) {
final int hGap = LwXmlReader.getOptionalInt(element, UIFormXmlConstants.ATTRIBUTE_HGAP, 0);
final int vGap = LwXmlReader.getOptionalInt(element, UIFormXmlConstants.ATTRIBUTE_VGAP, 0);
container.setLayout(new BorderLayout(hGap, vGap));
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
component.setCustomLayoutConstraints(LwXmlReader.getRequiredString(constraintsElement,
UIFormXmlConstants.ATTRIBUTE_BORDER_CONSTRAINT));
@@ -19,7 +19,7 @@ package com.intellij.uiDesigner.lw;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
import java.awt.CardLayout;
import java.awt.*;
/**
* @author yole
@@ -30,6 +30,7 @@ public class CardLayoutSerializer extends LayoutSerializer {
private CardLayoutSerializer() {
}
@Override
void readLayout(Element element, LwContainer container) {
final int hGap = LwXmlReader.getOptionalInt(element, UIFormXmlConstants.ATTRIBUTE_HGAP, 0);
final int vGap = LwXmlReader.getOptionalInt(element, UIFormXmlConstants.ATTRIBUTE_VGAP, 0);
@@ -39,6 +40,7 @@ public class CardLayoutSerializer extends LayoutSerializer {
container.putClientProperty(UIFormXmlConstants.LAYOUT_CARD, defaultCard);
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
final Element cardChild = LwXmlReader.getRequiredChild(constraintsElement, UIFormXmlConstants.ELEMENT_CARD);
final String name = LwXmlReader.getRequiredString(cardChild, UIFormXmlConstants.ATTRIBUTE_NAME);
@@ -41,6 +41,7 @@ public final class CompiledClassPropertiesProvider implements PropertiesProvider
myCache = new HashMap();
}
@Override
public HashMap getLwProperties(final String className) {
if (myCache.containsKey(className)) {
return (HashMap)myCache.get(className);
@@ -19,7 +19,7 @@ package com.intellij.uiDesigner.lw;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
import java.awt.FlowLayout;
import java.awt.*;
/**
* @author yole
@@ -30,6 +30,7 @@ public class FlowLayoutSerializer extends LayoutSerializer {
private FlowLayoutSerializer() {
}
@Override
void readLayout(Element element, LwContainer container) {
final int hGap = LwXmlReader.getOptionalInt(element, UIFormXmlConstants.ATTRIBUTE_HGAP, 5);
final int vGap = LwXmlReader.getOptionalInt(element, UIFormXmlConstants.ATTRIBUTE_VGAP, 5);
@@ -37,6 +38,7 @@ public class FlowLayoutSerializer extends LayoutSerializer {
container.setLayout(new FlowLayout(flowAlign, hGap, vGap));
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
}
}
@@ -16,16 +16,16 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.CellConstraints;
import com.intellij.uiDesigner.UIFormXmlConstants;
import com.intellij.uiDesigner.compiler.Utils;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.ColumnSpec;
import com.jgoodies.forms.layout.FormLayout;
import com.jgoodies.forms.layout.RowSpec;
import org.jdom.Element;
import java.util.List;
import java.util.Iterator;
import java.util.List;
/**
* @author yole
@@ -43,6 +43,7 @@ public class FormLayoutSerializer extends GridLayoutSerializer {
CellConstraints.TOP, CellConstraints.CENTER, CellConstraints.BOTTOM, CellConstraints.FILL
};
@Override
void readLayout(Element element, LwContainer container) {
FormLayout layout = new FormLayout();
final List rowSpecs = element.getChildren(UIFormXmlConstants.ELEMENT_ROWSPEC, element.getNamespace());
@@ -85,6 +86,7 @@ public class FormLayoutSerializer extends GridLayoutSerializer {
return groups;
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
super.readChildConstraints(constraintsElement, component);
CellConstraints cc = new CellConstraints();
@@ -16,8 +16,8 @@
package com.intellij.uiDesigner.lw;
import com.intellij.uiDesigner.compiler.GridBagConverter;
import com.intellij.uiDesigner.UIFormXmlConstants;
import com.intellij.uiDesigner.compiler.GridBagConverter;
import org.jdom.Element;
import java.awt.*;
@@ -28,10 +28,12 @@ public class GridBagLayoutSerializer extends GridLayoutSerializer {
public static GridBagLayoutSerializer INSTANCE = new GridBagLayoutSerializer();
@Override
void readLayout(Element element, LwContainer container) {
container.setLayout(new GridBagLayout());
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
super.readChildConstraints(constraintsElement, component);
GridBagConstraints gbc = new GridBagConstraints();
@@ -16,10 +16,10 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import com.intellij.uiDesigner.core.GridLayoutManager;
import com.intellij.uiDesigner.core.GridConstraints;
import com.intellij.uiDesigner.core.GridLayoutManager;
import org.jdom.Element;
import java.awt.*;
@@ -32,6 +32,7 @@ public class GridLayoutSerializer extends LayoutSerializer {
public static GridLayoutSerializer INSTANCE = new GridLayoutSerializer();
@Override
void readLayout(Element element, LwContainer container) {
final int rowCount = LwXmlReader.getRequiredInt(element, UIFormXmlConstants.ATTRIBUTE_ROW_COUNT);
final int columnCount = LwXmlReader.getRequiredInt(element, UIFormXmlConstants.ATTRIBUTE_COLUMN_COUNT);
@@ -60,6 +61,7 @@ public class GridLayoutSerializer extends LayoutSerializer {
container.setLayout(layout);
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
// Read Grid constraints
final Element gridElement = LwXmlReader.getChild(constraintsElement, "grid");
@@ -26,6 +26,7 @@ public class LwAtomicComponent extends LwComponent {
super(className);
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception{
readBase(element);
readConstraints(element);
@@ -38,14 +38,17 @@ public class LwButtonGroup implements IButtonGroup {
}
}
@Override
public String getName() {
return myName;
}
@Override
public String[] getComponentIds() {
return (String[])myComponentIds.toArray(new String[0]);
}
@Override
public boolean isBound() {
return myBound;
}
@@ -81,6 +81,7 @@ public abstract class LwComponent implements IComponent{
myDelegeeClientProperties = new LinkedHashMap();
}
@Override
public final String getId() {
return myId;
}
@@ -92,6 +93,7 @@ public abstract class LwComponent implements IComponent{
myId = id;
}
@Override
public final String getBinding(){
return myBinding;
}
@@ -100,6 +102,7 @@ public abstract class LwComponent implements IComponent{
myBinding = binding;
}
@Override
public final Object getCustomLayoutConstraints(){
return myCustomLayoutConstraints;
}
@@ -111,10 +114,12 @@ public abstract class LwComponent implements IComponent{
/**
* @return never null
*/
@Override
public final String getComponentClassName(){
return myClassName;
}
@Override
public IProperty[] getModifiedProperties() {
return getAssignedIntrospectedProperties();
}
@@ -131,10 +136,12 @@ public abstract class LwComponent implements IComponent{
* @return component's constraints in GridLayoutManager. This method never
* returns {@code null}.
*/
@Override
public final GridConstraints getConstraints(){
return myConstraints;
}
@Override
public boolean isCustomCreate() {
return myCustomCreate;
}
@@ -143,10 +150,12 @@ public abstract class LwComponent implements IComponent{
return myDefaultBinding;
}
@Override
public boolean accept(ComponentVisitor visitor) {
return visitor.visit(this);
}
@Override
public boolean areChildrenExclusive() {
return false;
}
@@ -155,6 +164,7 @@ public abstract class LwComponent implements IComponent{
return myParent;
}
@Override
public IContainer getParentContainer() {
return myParent;
}
@@ -205,11 +215,11 @@ public abstract class LwComponent implements IComponent{
/**
* 'properties' is not required subtag
* @param provider can be null if no properties should be read
* @param provider can be null if no properties should be read
*/
protected final void readProperties(final Element element, final PropertiesProvider provider) {
if (provider == null) {
// do not read properties
// do not read properties
return;
}
@@ -304,6 +314,7 @@ public abstract class LwComponent implements IComponent{
/**
* @see javax.swing.JComponent#getClientProperty(Object)
*/
@Override
public final Object getClientProperty(final Object key){
if (key == null) {
throw new IllegalArgumentException("key cannot be null");
@@ -314,6 +325,7 @@ public abstract class LwComponent implements IComponent{
/**
* @see javax.swing.JComponent#putClientProperty(Object, Object)
*/
@Override
public final void putClientProperty(final Object key, final Object value){
if (key == null) {
throw new IllegalArgumentException("key cannot be null");
@@ -87,6 +87,7 @@ public class LwContainer extends LwComponent implements IContainer{
return getLayout() instanceof GridLayoutManager;
}
@Override
public final boolean isXY(){
return getLayout() instanceof XYLayoutManager;
}
@@ -114,14 +115,17 @@ public class LwContainer extends LwComponent implements IContainer{
component.setParent(this);
}
@Override
public final IComponent getComponent(final int index) {
return (IComponent)myComponents.get(index);
}
@Override
public final int getComponentCount() {
return myComponents.size();
}
@Override
public int indexOfComponent(final IComponent lwComponent) {
return myComponents.indexOf(lwComponent);
}
@@ -131,10 +135,12 @@ public class LwContainer extends LwComponent implements IContainer{
*
* @see BorderType
*/
@Override
public final BorderType getBorderType(){
return myBorderType;
}
@Override
public boolean accept(ComponentVisitor visitor) {
if (!super.accept(visitor)) {
return false;
@@ -167,6 +173,7 @@ public class LwContainer extends LwComponent implements IContainer{
* @return border's title. If the container doesn't have any title then the
* method returns {@code null}.
*/
@Override
public final StringDescriptor getBorderTitle(){
return myBorderTitle;
}
@@ -205,7 +212,7 @@ public class LwContainer extends LwComponent implements IContainer{
/**
* TODO[anton,vova] looks like it is better to pass contraints tag
*
*
* @param element XML element which should contains 'constraints' tag
*/
protected void readConstraintsForChild(final Element element, final LwComponent component){
@@ -343,13 +350,14 @@ public class LwContainer extends LwComponent implements IContainer{
myLayoutSerializer = FormLayoutSerializer.INSTANCE;
}
else if (UIFormXmlConstants.LAYOUT_GRIDBAG.equals(myLayoutManager)) {
myLayoutSerializer = GridBagLayoutSerializer.INSTANCE;
myLayoutSerializer = GridBagLayoutSerializer.INSTANCE;
}
else {
myLayoutSerializer = GridLayoutSerializer.INSTANCE;
}
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception {
readBase(element);
@@ -379,6 +387,7 @@ public class LwContainer extends LwComponent implements IContainer{
readChildren(element, provider);
}
@Override
public boolean areChildrenExclusive() {
return UIFormXmlConstants.LAYOUT_CARD.equals(myLayoutManager);
}
@@ -25,7 +25,8 @@ public final class LwHSpacer extends LwAtomicComponent {
public LwHSpacer() throws Exception{
super("com.intellij.uiDesigner.core.Spacer");
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception{
readBase(element);
readConstraints(element);
@@ -15,14 +15,15 @@
*/
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
public final class LwIntroBooleanProperty extends LwIntrospectedProperty {
public LwIntroBooleanProperty(final String name){
super(name, Boolean.class.getName());
}
@Override
public Object read(final Element element) throws Exception{
return Boolean.valueOf(LwXmlReader.getRequiredString(element, UIFormXmlConstants.ATTRIBUTE_VALUE));
}
@@ -1,13 +1,14 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
public final class LwIntroCharProperty extends LwIntrospectedProperty {
public LwIntroCharProperty(final String name){
super(name, Character.class.getName());
}
@Override
public Object read(final Element element) throws Exception{
return Character.valueOf(LwXmlReader.getRequiredString(element, UIFormXmlConstants.ATTRIBUTE_VALUE).charAt(0));
}
@@ -25,6 +25,7 @@ public class LwIntroColorProperty extends LwIntrospectedProperty {
super(name, "java.awt.Color");
}
@Override
public Object read(Element element) throws Exception {
return LwXmlReader.getColorDescriptor(element);
}
@@ -26,6 +26,7 @@ public class LwIntroComponentProperty extends LwIntrospectedProperty {
super(name, propertyClassName);
}
@Override
public Object read(Element element) throws Exception {
return LwXmlReader.getRequiredString(element, UIFormXmlConstants.ATTRIBUTE_VALUE);
}
@@ -27,6 +27,7 @@ public final class LwIntroDimensionProperty extends LwIntrospectedProperty {
super(name, "java.awt.Dimension");
}
@Override
public Object read(final Element element) throws Exception{
final int width = LwXmlReader.getRequiredInt(element, "width");
final int height = LwXmlReader.getRequiredInt(element, "height");
@@ -32,12 +32,14 @@ public class LwIntroEnumProperty extends LwIntrospectedProperty {
myEnumClass = enumClass;
}
@Override
public Object read(Element element) throws Exception {
String value = element.getAttributeValue(UIFormXmlConstants.ATTRIBUTE_VALUE);
final Method method = myEnumClass.getMethod("valueOf", new Class[] { String.class} );
return method.invoke(null, new Object[] { value } );
}
@Override
public String getCodeGenPropertyClassName() {
return "java.lang.Enum";
}
@@ -25,6 +25,7 @@ public class LwIntroFontProperty extends LwIntrospectedProperty {
super(name, "java.awt.Font");
}
@Override
public Object read(Element element) throws Exception {
return LwXmlReader.getFontDescriptor(element);
}
@@ -26,6 +26,7 @@ public class LwIntroIconProperty extends LwIntrospectedProperty {
super(name, "javax.swing.Icon");
}
@Override
public Object read(Element element) throws Exception {
String value = LwXmlReader.getRequiredString(element, UIFormXmlConstants.ATTRIBUTE_VALUE);
return new IconDescriptor(value);
@@ -25,6 +25,7 @@ public final class LwIntroInsetsProperty extends LwIntrospectedProperty{
super(name, "java.awt.Insets");
}
@Override
public Object read(final Element element) throws Exception{
return LwXmlReader.readInsets(element);
}
@@ -22,6 +22,7 @@ public final class LwIntroIntProperty extends LwIntrospectedProperty {
super(name, Integer.class.getName());
}
@Override
public Object read(final Element element) throws Exception{
return new Integer(LwXmlReader.getRequiredInt(element, "value"));
}
@@ -29,6 +29,7 @@ public class LwIntroListModelProperty extends LwIntrospectedProperty {
super(name, propertyClassName);
}
@Override
public Object read(Element element) throws Exception {
final List list = element.getChildren(UIFormXmlConstants.ELEMENT_ITEM, element.getNamespace());
String[] result = new String[list.size()];
@@ -1,7 +1,7 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
public final class LwIntroPrimitiveTypeProperty extends LwIntrospectedProperty {
private final Class myValueClass;
@@ -11,6 +11,7 @@ public final class LwIntroPrimitiveTypeProperty extends LwIntrospectedProperty {
myValueClass = valueClass;
}
@Override
public Object read(final Element element) throws Exception{
return LwXmlReader.getRequiredPrimitiveTypeValue(element, UIFormXmlConstants.ATTRIBUTE_VALUE, myValueClass);
}
@@ -27,6 +27,7 @@ public final class LwIntroRectangleProperty extends LwIntrospectedProperty{
super(name, "java.awt.Rectangle");
}
@Override
public Object read(final Element element) throws Exception{
final int x = LwXmlReader.getRequiredInt(element, "x");
final int y = LwXmlReader.getRequiredInt(element, "y");
@@ -40,18 +40,19 @@ public abstract class LwIntrospectedProperty implements IProperty {
/**
* @return never null
*/
*/
@Override
public final String getName(){
return myName;
}
/**
* @return never null
*/
*/
public final String getPropertyClassName(){
return myPropertyClassName;
}
public final String getReadMethodName() {
return "get" + Character.toUpperCase(myName.charAt(0)) + myName.substring(1);
}
@@ -79,6 +80,7 @@ public abstract class LwIntrospectedProperty implements IProperty {
*/
public abstract Object read(Element element) throws Exception;
@Override
public Object getPropertyValue(final IComponent component) {
return ((LwComponent) component).getPropertyValue(this);
}
@@ -16,8 +16,8 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
/**
* @author yole
@@ -29,6 +29,7 @@ public class LwNestedForm extends LwComponent {
super("");
}
@Override
public void read(Element element, PropertiesProvider provider) throws Exception {
myFormFileName = LwXmlReader.getRequiredString(element, UIFormXmlConstants.ATTRIBUTE_FORM_FILE);
readBase(element);
@@ -15,8 +15,8 @@
*/
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.UIFormXmlConstants;
import org.jdom.Element;
/**
* @author Vladimir Kondratyev
@@ -29,6 +29,7 @@ public final class LwRbIntroStringProperty extends LwIntrospectedProperty {
/**
* @return instance of {@link com.intellij.uiDesigner.lw.StringDescriptor}
*/
@Override
public Object read(final Element element) throws Exception{
final StringDescriptor descriptor = LwXmlReader.getStringDescriptor(element,
UIFormXmlConstants.ATTRIBUTE_VALUE,
@@ -44,6 +44,7 @@ public final class LwRootContainer extends LwContainer implements IRootContainer
return myMainComponentBinding;
}
@Override
public String getClassToBind(){
return myClassToBind;
}
@@ -52,6 +53,7 @@ public final class LwRootContainer extends LwContainer implements IRootContainer
myClassToBind = classToBind;
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception {
if (element == null) {
throw new IllegalArgumentException("element cannot be null");
@@ -104,10 +106,12 @@ public final class LwRootContainer extends LwContainer implements IRootContainer
}
}
@Override
public IButtonGroup[] getButtonGroups() {
return (LwButtonGroup[])myButtonGroups.toArray(new LwButtonGroup[0]);
}
@Override
public String getButtonGroupName(IComponent component) {
for(int i=0; i<myButtonGroups.size(); i++) {
LwButtonGroup group = (LwButtonGroup) myButtonGroups.get(i);
@@ -121,6 +125,7 @@ public final class LwRootContainer extends LwContainer implements IRootContainer
return null;
}
@Override
public String[] getButtonGroupComponentIds(String groupName) {
for(int i=0; i<myButtonGroups.size(); i++) {
LwButtonGroup group = (LwButtonGroup) myButtonGroups.get(i);
@@ -131,6 +136,7 @@ public final class LwRootContainer extends LwContainer implements IRootContainer
throw new IllegalArgumentException("Cannot find group " + groupName);
}
@Override
public boolean isInspectionSuppressed(final String inspectionId, final String componentId) {
for (Iterator iterator = myInspectionSuppressions.iterator(); iterator.hasNext();) {
LwInspectionSuppression suppression = (LwInspectionSuppression)iterator.next();
@@ -28,13 +28,16 @@ public final class LwScrollPane extends LwContainer {
super(className);
}
@Override
protected LayoutManager createInitialLayout(){
return null;
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception {
readNoLayout(element, provider);
}
@Override
protected void readConstraintsForChild(final Element element, final LwComponent component) {}
}
@@ -32,14 +32,17 @@ public final class LwSplitPane extends LwContainer{
super(className);
}
@Override
protected LayoutManager createInitialLayout(){
return null;
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception {
readNoLayout(element, provider);
}
@Override
protected void readConstraintsForChild(final Element element, final LwComponent component) {
final Element constraintsElement = LwXmlReader.getRequiredChild(element, "constraints");
final Element splitterChild = LwXmlReader.getRequiredChild(constraintsElement, "splitpane");
@@ -29,14 +29,17 @@ public final class LwTabbedPane extends LwContainer implements ITabbedPane {
super(className);
}
@Override
protected LayoutManager createInitialLayout() {
return null;
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception {
readNoLayout(element, provider);
}
@Override
protected void readConstraintsForChild(final Element element, final LwComponent component) {
final Element constraintsElement = LwXmlReader.getRequiredChild(element, UIFormXmlConstants.ELEMENT_CONSTRAINTS);
final Element tabbedPaneChild = LwXmlReader.getRequiredChild(constraintsElement, UIFormXmlConstants.ELEMENT_TABBEDPANE);
@@ -99,6 +102,7 @@ public final class LwTabbedPane extends LwContainer implements ITabbedPane {
}
}
@Override
public StringDescriptor getTabProperty(IComponent component, final String propName) {
LwComponent lwComponent = (LwComponent) component;
LwTabbedPane.Constraints constraints = (LwTabbedPane.Constraints) lwComponent.getCustomLayoutConstraints();
@@ -108,6 +112,7 @@ public final class LwTabbedPane extends LwContainer implements ITabbedPane {
return constraints.getProperty(propName);
}
@Override
public boolean areChildrenExclusive() {
return true;
}
@@ -28,14 +28,17 @@ public class LwToolBar extends LwContainer {
super(className);
}
@Override
protected LayoutManager createInitialLayout() {
return null;
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception {
readNoLayout(element, provider);
}
@Override
protected void readConstraintsForChild(final Element element, final LwComponent component) {
}
}
@@ -25,7 +25,8 @@ public final class LwVSpacer extends LwAtomicComponent {
public LwVSpacer() throws Exception{
super("com.intellij.uiDesigner.core.Spacer");
}
@Override
public void read(final Element element, final PropertiesProvider provider) throws Exception{
readBase(element);
readConstraints(element);
@@ -16,8 +16,8 @@
package com.intellij.uiDesigner.lw;
import org.jdom.Element;
import com.intellij.uiDesigner.shared.XYLayoutManager;
import org.jdom.Element;
import java.awt.*;
@@ -30,10 +30,12 @@ public class XYLayoutSerializer extends LayoutSerializer {
private XYLayoutSerializer() {
}
@Override
void readLayout(Element element, LwContainer container) {
container.setLayout(new XYLayoutManager());
}
@Override
void readChildConstraints(final Element constraintsElement, final LwComponent component) {
final Element xyElement = LwXmlReader.getChild(constraintsElement, "xy");
if(xyElement != null){
@@ -23,26 +23,31 @@ public class XYLayoutManager extends AbstractLayout {
public XYLayoutManager(){
}
@Override
public Dimension maximumLayoutSize(final Container target){
throw new UnsupportedOperationException();
}
@Override
public Dimension preferredLayoutSize(final Container parent){
throw new UnsupportedOperationException();
}
@Override
public Dimension minimumLayoutSize(final Container parent){
throw new UnsupportedOperationException();
}
@Override
public void layoutContainer(final Container parent){
throw new UnsupportedOperationException();
}
public void setPreferredSize(final Dimension size){
throw new UnsupportedOperationException();
}
@Override
public final void invalidateLayout(final Container target){
}
}
@@ -21,6 +21,7 @@ import java.io.IOException;
public class CompilerIOUtil {
private final static ThreadLocal<byte[]> myBuffer = new ThreadLocal<byte[]>() {
@Override
protected byte[] initialValue() {
return new byte[1024];
}
@@ -48,6 +48,7 @@ public class PsiClassWriter extends ClassWriter {
return JavaSdk.getInstance().isOfVersionOrHigher(projectJdk, JavaSdkVersion.JDK_1_6);
}
@Override
protected String getCommonSuperClass(final String type1, final String type2) {
//PsiManager.getInstance(myProject).findClass(type1.replace('/', '.').replace('$', '.'), myProject.getAllScope());
return ReadAction.compute(() -> {

Some files were not shown because too many files have changed in this diff Show More