mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
add override
This commit is contained in:
+8
-1
@@ -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;
|
||||
}
|
||||
|
||||
+4
-1
@@ -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());
|
||||
}
|
||||
|
||||
+12
-2
@@ -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;
|
||||
|
||||
+1
@@ -34,6 +34,7 @@ public class CardLayoutCodeGenerator extends SimpleLayoutCodeGenerator {
|
||||
super(Type.getType(CardLayout.class));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generateComponentLayout(LwComponent lwComponent,
|
||||
GeneratorAdapter generator,
|
||||
int componentLocal,
|
||||
|
||||
+1
@@ -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) {
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
+2
@@ -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");
|
||||
}
|
||||
|
||||
+2
@@ -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);
|
||||
|
||||
+3
@@ -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,
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+1
@@ -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,
|
||||
|
||||
+2
@@ -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,
|
||||
|
||||
+1
@@ -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,
|
||||
|
||||
+4
@@ -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");
|
||||
|
||||
+1
@@ -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,
|
||||
|
||||
+1
@@ -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]++;
|
||||
|
||||
+3
-1
@@ -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));
|
||||
|
||||
+3
-1
@@ -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);
|
||||
|
||||
+1
@@ -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);
|
||||
|
||||
+3
-1
@@ -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) {
|
||||
}
|
||||
}
|
||||
|
||||
+8
-6
@@ -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();
|
||||
|
||||
+3
-1
@@ -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();
|
||||
|
||||
+4
-2
@@ -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);
|
||||
|
||||
+2
-1
@@ -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));
|
||||
}
|
||||
|
||||
+2
-1
@@ -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);
|
||||
}
|
||||
|
||||
+1
@@ -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);
|
||||
}
|
||||
|
||||
+1
@@ -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"));
|
||||
}
|
||||
|
||||
+1
@@ -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()];
|
||||
|
||||
+2
-1
@@ -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);
|
||||
}
|
||||
|
||||
+1
@@ -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");
|
||||
|
||||
+5
-3
@@ -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);
|
||||
|
||||
+2
-1
@@ -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){
|
||||
|
||||
+6
-1
@@ -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
Reference in New Issue
Block a user