[ANN] Images Support 0.1

Hello,

I just uploded my refactored plugin - imageEditor for Irida.

Changes:

  • Support for images file types

  • Images viewer (inline IDEA editor)

  • Smart zooming (small images will resized automaticaly to best zoom factor)

  • Wheel zooming (Ctrl+Wheel under image in editor)


Twiki:
http://www.intellij.org/twiki/bin/view/Main/ImagesSupportPlugin

Plugin is available on Plugin Manager since build 3245.

Thanks!

PS. Thanks JetBrains for working custom FileType registration! :)
--
Alexey Efimov

18 comments
Comment actions Permalink

Are those .png files suppose to be supported?
Works fine for .gif and .jpg, but .png opens up plain texte ditor with binary garbage in it.

0
Comment actions Permalink

Alexey

On MacOS X, I had to uninstall your plugin: it locks IDEA, once you open
the Settings panel.

Alain

0
Comment actions Permalink

Yep, same here on w2k

0
Comment actions Permalink

Nice (works on PNGs for me).

Why is CtrlShiftN (go to file) doesn't let me open image files
(doesn't auto complete or know about them)? I can open images by double
clicking on the Project tree.

Thanks,
Amnon

Alexey Efimov wrote:

Hello,

I just uploded my refactored plugin - imageEditor for Irida.

Changes:

  • Support for images file types

  • Images viewer (inline IDEA editor)

  • Smart zooming (small images will resized automaticaly to best zoom factor)

  • Wheel zooming (Ctrl+Wheel under image in editor)


Twiki:
http://www.intellij.org/twiki/bin/view/Main/ImagesSupportPlugin

Plugin is available on Plugin Manager since build 3245.

Thanks!

PS. Thanks JetBrains for working custom FileType registration! :)
--
Alexey Efimov

0
Comment actions Permalink

Also, the click and drag works strangely. You can drag the image off the
screen but not go to parts you can't see (looks as if some logic is
inverted).

Cool toggle background. Can you add control over background color?

Amnon

0
Comment actions Permalink

java.lang.NullPointerException
at org.intellij.imagesSupport.options.impl.OptionsConfigurabe.disposeUIR
esources(OptionsConfigurabe.java:53)
at com.intellij.openapi.options.ex.ExplorerSettingsEditor.dispose(Explor
erSettingsEditor.java:121)
at com.intellij.openapi.ui.DialogWrapper.close(DialogWrapper.java:168)
at com.intellij.openapi.ui.DialogWrapper.doCancelAction(DialogWrapper.ja
va:354)
at com.intellij.openapi.ui.DialogWrapper$CancelAction.actionPerformed(Di
alogWrapper.java:847)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
86)
at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1839)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
istener.java:245)
at java.awt.Component.processMouseEvent(Component.java:5100)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.jav
a:18)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:125)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:141)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:141)
at java.awt.Dialog$1.run(Dialog.java:540)
at java.awt.Dialog.show(Dialog.java:561)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl$MyDialog.show(Dial
ogWrapperPeerImpl.java:0)
at com.intellij.openapi.ui.impl.DialogWrapperPeerImpl.show(DialogWrapper
PeerImpl.java:21)
at com.intellij.openapi.ui.DialogWrapper.show(DialogWrapper.java:734)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showExplorerOptions(Sho
wSettingsUtilImpl.java:2)
at com.intellij.ide.actions.ShowSettingsUtilImpl.showSettingsDialog(Show
SettingsUtilImpl.java:22)
at com.intellij.ide.actions.ShowSettingsAction.actionPerformed(ShowSetti
ngsAction.java:4)
at com.intellij.openapi.actionSystem.impl.ActionButton.performAction(Act
ionButton.java:114)
at com.intellij.openapi.actionSystem.impl.ActionButton.processMouseEvent
(ActionButton.java:106)
at java.awt.Component.processEvent(Component.java:4897)
at java.awt.Container.processEvent(Container.java:1569)
at java.awt.Component.dispatchEventImpl(Component.java:3615)
at java.awt.Container.dispatchEventImpl(Container.java:1627)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
at java.awt.Container.dispatchEventImpl(Container.java:1613)
at java.awt.Window.dispatchEventImpl(Window.java:1606)
at java.awt.Component.dispatchEvent(Component.java:3477)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.jav
a:18)
at com.intellij.ide.IdeEventQueue.a(IdeEventQueue.java:125)
at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:141)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:201)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:151)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

0
Comment actions Permalink

PLease, check Files Type settings for your IDEA and 'png' binded into 'Images'.

Thanks!

0
Comment actions Permalink

Hello Chris,

CS> java.lang.NullPointerException

Hmm... Very strange. Can you tell me how i can reproduce that?


NPE in disposeUIResources signals that uiform == null. But how? By theory,
first invoke createComponent, and then after dialog closed - invokes disposeUIResources.

I guess, that you have not created uiForm for configuration. Then this NPE
is may be accours. But why uiForm does not creted?
Can you look into IDEA log then you try open Images Support configuration?

Thanks!
--
Alexey Efimov, Java Developer
Tops BI
http://www.topsbi.ru


0
Comment actions Permalink

Yes, i'm just studing new Open API for ColorSchema/// but maybe i just put color chooser on form as it in old plugin.

The API already exists, but no UI for it. You can now get some cheat looking into ${idea.config}/options/images.support.xml file where stored settings. Make changes carefully then IDEA is stoped.

Thanks!

0
Comment actions Permalink

Alexey,

In 'Classic View' the method disposeUIResources may get called without
createComponent previously being called. Therefore it's quite possible
that uiForm is null in disposeUIResources.

Alexey Efimov wrote:

Hello Chris,

CS> java.lang.NullPointerException

Hmm... Very strange. Can you tell me how i can reproduce that?

    public JComponent createComponent() {
>        if (uiForm == null) {
>            uiForm = new OptionsUIForm();
>        }
>        uiForm.getOptions().addPropertyChangeListener(this);
>        return uiForm.getContentPane();
>    }
> 
>    public void disposeUIResources() {
>        uiForm.getOptions().removePropertyChangeListener(this);
>    }
> ]]>


NPE in disposeUIResources signals that uiform == null. But how? By
theory, first invoke createComponent, and then after dialog closed -
invokes disposeUIResources.

I guess, that you have not created uiForm for configuration. Then this
NPE is may be accours. But why uiForm does not creted?
Can you look into IDEA log then you try open Images Support configuration?

Thanks!
--
Alexey Efimov, Java Developer
Tops BI
http://www.topsbi.ru


--
Martin Fuhrer
Fuhrer Engineering AG
http://www.fuhrer.com

0
Comment actions Permalink

Thanks!
Uploaded new version - ImagesSupport 0.1.1.

0
Comment actions Permalink

Thanks.

I still can't use CtrlShiftN and scrolling is still bad with the new
update, though even as is the plug-in is useful, don't want to put you
down :-).

Regards,
Amnon

Alexey Efimov wrote:

Yes, i'm just studing new Open API for ColorSchema/// but maybe i just put color chooser on form as it in old plugin.

The API already exists, but no UI for it. You can now get some cheat looking into ${idea.config}/options/images.support.xml file where stored settings. Make changes carefully then IDEA is stoped.

Thanks!

0
Comment actions Permalink

Hello Amnon,

How u think, maybe just remove ability to move images? :)
I'm just can't imagine that is right behaviour then i drag image?

For CtrlShiftN... i suppose it not for me. I try to get more info from someone of JB gurus.

Thanks!

0
Comment actions Permalink

Hi Alexey,

Alexey Efimov wrote:

Hello Amnon,

How u think, maybe just remove ability to move images? :)
I'm just can't imagine that is right behaviour then i drag image?

When an image is larger than the screen, the scroll bars and mouse drag
scrolling should have the same boundaries. Currently the scroll bars are
fine but drag and drop scrolling is somewhat inverted. I can scroll
beyond the left top corner of the image but not reach the bottom right
corner.
Another way to look at it - by 'dragging' the picture with the mouse one
should be able to make the scroll bars move between their minimum and
maximum, and what is happening now is that you drag the image beyond
scrolling position of 0.


For CtrlShiftN... i suppose it not for me. I try to get more info from someone of JB gurus.

Thanks!

0
Comment actions Permalink

I suppose, that i must refactore this feature to "Hand drag" feature.

Then image not bounds screen size, then you can 'hook' it and then scroll editor.

Is it right?

0
Comment actions Permalink

Alexey Efimov wrote:

I suppose, that i must refactore this feature to "Hand drag" feature.

Then image not bounds screen size, then you can 'hook' it and then scroll editor.

Is it right?


I think that's correct.

Amnon

0
Comment actions Permalink

nice plugin - something like this was missing ;)


M.

0
Comment actions Permalink

Thanks! :)
Maybe you find something mising in this plugin? I'll be very pleasant for any ideas :)

0

Please sign in to leave a comment.