From: <had...@us...> - 2008-08-18 07:11:56
|
Revision: 3810 http://fudaa.svn.sourceforge.net/fudaa/?rev=3810&view=rev Author: hadouxad Date: 2008-08-18 07:12:03 +0000 (Mon, 18 Aug 2008) Log Message: ----------- - widget qui permet de cr?\195?\169er une image movable, resizable, de la dupliquer et la supprimer - widget editor text html Modified Paths: -------------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java Added Paths: ----------- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionImageChooser.java branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-08-15 16:42:44 UTC (rev 3809) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliNodeDefault.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -42,6 +42,8 @@ duplique.setCreator(new EbliWidgetCreatorVueCalque(((EbliWidgetCreatorVueCalque) getCreator()).getCalque())); } else if (creator instanceof EbliWidgetCreatorShape) { duplique.setCreator(new EbliWidgetCreatorShape(((EbliWidgetCreatorShape) getCreator()).getTypeObject_())); + } else if (creator instanceof EbliWidgetCreatorImage) { + duplique.setCreator(new EbliWidgetCreatorImage(((EbliWidgetCreatorImage) getCreator()).getG())); } else { // instance pas identifie, impossible de dupliquer return null; Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorImage.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -0,0 +1,41 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Image; + +/** + * Creator de la widget image. + * + * @author Adrien Hadoux + * + */ +public class EbliWidgetCreatorImage implements EbliWidgetCreator { + + Image image_; + EbliWidgetImage res; + + public EbliWidgetCreatorImage(Image g) { + super(); + this.image_ = g; + } + + public Image getG() { + return image_; + } + + public void setG(Image g) { + this.image_ = g; + } + + public EbliWidget create(EbliScene _scene) { + + res = new EbliWidgetImage(_scene, getG()); + + return res; + } + + public EbliWidget getWidget() { + // TODO Auto-generated method stub + return res; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetCreatorTextEditor.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -0,0 +1,41 @@ +package org.fudaa.ebli.visuallibrary; + +import org.fudaa.ctulu.gui.CtuluHtmlEditorPanel; + +/** + * creator Editeur de texte widget. + * + * @author Adrien Hadoux + * + */ +public class EbliWidgetCreatorTextEditor implements EbliWidgetCreator { + + CtuluHtmlEditorPanel editorPane_; + EbliWidgetTextEditor res; + + public EbliWidgetCreatorTextEditor(CtuluHtmlEditorPanel g) { + super(); + this.editorPane_ = g; + } + + public CtuluHtmlEditorPanel getG() { + return editorPane_; + } + + public void setG(CtuluHtmlEditorPanel g) { + this.editorPane_ = g; + } + + public EbliWidget create(EbliScene _scene) { + + res = new EbliWidgetTextEditor(_scene, getG()); + + return res; + } + + public EbliWidget getWidget() { + // TODO Auto-generated method stub + return res; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetImage.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -0,0 +1,35 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Graphics2D; +import java.awt.Image; +import java.awt.Rectangle; +import java.awt.image.ImageObserver; + +public class EbliWidgetImage extends EbliWidget implements ImageObserver { + + Image image; + + public EbliWidgetImage(EbliScene scene, Image _img) { + super(scene); + image = _img; + } + + + + protected void paintWidget() { + Graphics2D g = getGraphics(); + + Rectangle rec = getClientArea(); + + // -- dessin de l'image --// + g.drawImage(image, rec.x, rec.y, rec.width, rec.height, this); + } + + + + public boolean imageUpdate(Image img, int infoflags, int x, int y, int width, int height) { + repaint(); + return true; + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/EbliWidgetTextEditor.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -0,0 +1,128 @@ +package org.fudaa.ebli.visuallibrary; + +import java.awt.Dimension; +import java.awt.Graphics2D; +import java.awt.Rectangle; +import java.util.EnumSet; + +import org.fudaa.ctulu.gui.CtuluHtmlEditorPanel; +import org.netbeans.api.visual.action.ActionFactory; +import org.netbeans.api.visual.action.InplaceEditorProvider; +import org.netbeans.api.visual.action.WidgetAction; +import org.netbeans.api.visual.widget.Widget; + +import com.memoire.bu.BuBorderLayout; +import com.memoire.bu.BuPanel; + +public class EbliWidgetTextEditor extends EbliWidget implements InplaceEditorProvider<BuPanel> { + + // contenu du texte + String content_ = "Double-cliquez pour \xE9diter"; + + // editeur de texte + CtuluHtmlEditorPanel editorPane_ = new CtuluHtmlEditorPanel(); + // ComponentWidget widget; + BuPanel conteneur = null; + + public EbliWidgetTextEditor(EbliScene scene, CtuluHtmlEditorPanel content) { + super(scene); + editorPane_ = content; + + // widget = new ComponentWidget(scene, editorPane_) { + // public void notifyStateChanged(ObjectState previousState, ObjectState + // newState) { + // + // setBorder(getScene().getLookFeel().getBorder(newState)); + // } + // }; + // + // setLayout(new FlowLayout(true, SerialAlignment.CENTER, 5)); + // addChild(widget); + // + // -- creation de l action pour editor --// + WidgetAction editorAction = ActionFactory.createInplaceEditorAction(this); + + // -- ajout de l action au widget correspondant --// + this.getActions().addAction(editorAction); + + } + + protected void paintWidget() { + Graphics2D g = getGraphics(); + + Rectangle rec = getClientArea(); + + decoupeEcriture(editorPane_.getDocumentText(), g); + } + + /** + * Methode qui redessine l edition de texte proprement. + * + * @param text + * de l editeur html + * @param g + */ + public void decoupeEcriture(String text, Graphics2D g) { + + int espaceLignes = 10; + + if(text==null || text.length()==0) + return; + + Rectangle rec = getClientArea(); + int indiceDep=0; + int espaceAffichable = Math.min((int) (rec.width / 5), text.length()); + + for (int i = 0; indiceDep + espaceAffichable < text.length(); i++) { + g.drawString(text.substring(indiceDep, indiceDep + espaceAffichable), rec.x, rec.y + i * espaceLignes); + indiceDep = indiceDep + espaceAffichable; + + } + + + } + + + public BuPanel createEditorComponent( + org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, Widget widget) { + //--creation du panel ekitcore + if(conteneur==null){ + conteneur=new BuPanel(new BuBorderLayout()); + + Rectangle rec = getClientArea(); + editorPane_.setSize(rec.width, rec.height); + editorPane_.setPreferredSize(new Dimension(rec.width, rec.height)); + conteneur.setPreferredSize(new Dimension(rec.width, rec.height)); + + conteneur.add(editorPane_, BuBorderLayout.CENTER); + conteneur.add(editorPane_.getToolBar(true), BuBorderLayout.NORTH); + conteneur.add(editorPane_.getMenuBar()); + + } + + + return conteneur; + + + } + + public EnumSet<org.netbeans.api.visual.action.InplaceEditorProvider.ExpansionDirection> getExpansionDirections( + org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, Widget widget, BuPanel editor) { + return null; + } + + public Rectangle getInitialEditorComponentBounds( + org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, Widget widget, BuPanel editor, + Rectangle viewBounds) { + return null; + } + + public void notifyClosing(org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, + Widget widget, BuPanel editor, boolean commit) { + } + + public void notifyOpened(org.netbeans.api.visual.action.InplaceEditorProvider.EditorController controller, + Widget widget, BuPanel editor) { + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionImageChooser.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionImageChooser.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActionImageChooser.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -0,0 +1,57 @@ +package org.fudaa.ebli.visuallibrary.actions; + +import java.awt.Dimension; +import java.awt.Image; +import java.awt.Point; +import java.awt.Toolkit; +import java.awt.event.ActionEvent; + +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; +import org.fudaa.ebli.visuallibrary.EbliScene; +import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorImage; + +import com.memoire.bu.BuFileChooser; +import com.memoire.bu.BuResource; + +/** + * Action qui permet de creer une widget image. + * + * @author Adrien Hadoux + * + */ +public class EbliWidgetActionImageChooser extends EbliActionSimple { + + EbliScene scene_; + + public EbliWidgetActionImageChooser(EbliScene _widget) { + super(EbliLib.getS("Ins\xE9rer une image"), BuResource.BU.getIcon("crystal_image"), "INSERTIONIMAGE"); + scene_ = _widget; + } + + + public void actionPerformed(ActionEvent e) { + + BuFileChooser chooser = new BuFileChooser(/* System.getProperty("user.dir") */); + + int rep = chooser.showOpenDialog(scene_.getView()); + + if (rep == BuFileChooser.APPROVE_OPTION) { + Image img = Toolkit.getDefaultToolkit().getImage(chooser.getSelectedFile().getAbsolutePath()); + + // -- creation de la widget et ajout dans la scene --// + EbliNodeDefault nodeImage = new EbliNodeDefault(); + nodeImage.setTitle(" " + chooser.getSelectedFile()); + nodeImage.setCreator(new EbliWidgetCreatorImage(img)); + nodeImage.setPreferedSize(new Dimension(200, 200)); + nodeImage.setPreferedLocation(new Point(270, 225)); + scene_.addNode(nodeImage); + + // -- rafraichissement de la scene --// + scene_.refresh(); + + } + } + +} Added: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java (rev 0) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/actions/EbliWidgetActiontextEditor.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -0,0 +1,48 @@ +package org.fudaa.ebli.visuallibrary.actions; + +import java.awt.Dimension; +import java.awt.Point; +import java.awt.event.ActionEvent; + +import org.fudaa.ctulu.gui.CtuluHtmlEditorPanel; +import org.fudaa.ebli.commun.EbliActionSimple; +import org.fudaa.ebli.commun.EbliLib; +import org.fudaa.ebli.visuallibrary.EbliNodeDefault; +import org.fudaa.ebli.visuallibrary.EbliScene; +import org.fudaa.ebli.visuallibrary.EbliWidgetCreatorTextEditor; + +import com.memoire.bu.BuResource; + +/** + * Classe qui genere une widget editeur de texte. + * + * @author Adrien Hadoux + * + */ +public class EbliWidgetActiontextEditor extends EbliActionSimple { + + EbliScene scene_; + + public EbliWidgetActiontextEditor(EbliScene _widget) { + super(EbliLib.getS("Ins\xE9rer une texte"), BuResource.BU.getIcon("crystal_fonte"), "INSERTIONTEXTE"); + scene_ = _widget; + } + + public void actionPerformed(ActionEvent e) { + + + // -- creation de la widget et ajout dans la scene --// + EbliNodeDefault nodeText = new EbliNodeDefault(); + nodeText.setTitle("Texte"); + nodeText.setCreator(new EbliWidgetCreatorTextEditor(new CtuluHtmlEditorPanel())); + nodeText.setPreferedSize(new Dimension(200, 200)); + nodeText.setPreferedLocation(new Point(270, 225)); + scene_.addNode(nodeText); + + // -- rafraichissement de la scene --// + scene_.refresh(); + + + } + +} Modified: branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java 2008-08-15 16:42:44 UTC (rev 3809) +++ branches/Prepro-0.92-SNAPSHOT/ebli/src/org/fudaa/ebli/visuallibrary/graphe/EbliWidgetGraphe.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -220,23 +220,23 @@ // TODO Auto-generated method stub } - - public void setColorContour(Color newColor){ - couleurContour=newColor; - repaint(); - } - - public Color getColorContour(){ - return couleurContour; - } - - public void setColorFond(Color newColor){ - couleurFond=newColor; - repaint(); - } - - public Color getColorFond(){ - return couleurFond; - } + + // public void setColorContour(Color newColor){ + // couleurContour=newColor; + // repaint(); + // } + // + // public Color getColorContour(){ + // return couleurContour; + // } + // + // public void setColorFond(Color newColor){ + // couleurFond=newColor; + // repaint(); + // } + // + // public Color getColorFond(){ + // return couleurFond; + // } } Modified: branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-15 16:42:44 UTC (rev 3809) +++ branches/Prepro-0.92-SNAPSHOT/ebli/test/org/fudaa/ebli/all/TestGraphe2.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -59,7 +59,9 @@ import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionDuplicate; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionFont; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionForeGround; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionImageChooser; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionRetaillage; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActiontextEditor; import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorCircle; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorEllipse; @@ -442,8 +444,11 @@ bar.add(new EbliWidgetActionRetaillage(scene, EbliWidgetActionRetaillage.RETAIILLAGE_MIN)); bar.add(new EbliWidgetActionRetaillage(scene, EbliWidgetActionRetaillage.RETAIILLAGE_MAX)); + bar.add(new EbliWidgetActionImageChooser(scene)); + bar.add(new EbliWidgetActiontextEditor(scene)); + p.doLayout(); // -- creation de l action pour les fonts --// @@ -453,5 +458,8 @@ bar.add(actionFont.getFonts()); bar.add(actionFont.getSizeFonts()); + + + } } \ No newline at end of file Modified: branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java =================================================================== --- branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-08-15 16:42:44 UTC (rev 3809) +++ branches/Prepro-0.92-SNAPSHOT/fudaa/src/org/fudaa/fudaa/tr/post/TrPostLayoutPanelController.java 2008-08-18 07:12:03 UTC (rev 3810) @@ -35,6 +35,7 @@ import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionConfigure; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionDuplicate; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionForeGround; +import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionImageChooser; import org.fudaa.ebli.visuallibrary.actions.EbliWidgetActionRetaillage; import org.fudaa.ebli.visuallibrary.calque.EbliWidgetCreatorVueCalque; import org.fudaa.ebli.visuallibrary.creator.ShapeCreatorCircle; @@ -237,6 +238,8 @@ addRectangle(); } }); + + _l.add(new EbliWidgetActionImageChooser(getScene())); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |