diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..e92e96e37 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,259 @@ +{ + // Use IntelliSense to learn about possible attributes. + // Hover to view descriptions of existing attributes. + // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 + "version": "0.2.0", + "configurations": [ + { + "type": "java", + "name": "Current File", + "request": "launch", + "mainClass": "${file}" + }, + { + "type": "java", + "name": "CIELABColorSpace", + "request": "launch", + "mainClass": "org.jhotdraw.color.CIELABColorSpace", + "projectName": "jhotdraw-gui" + }, + { + "type": "java", + "name": "CIELCHabColorSpace", + "request": "launch", + "mainClass": "org.jhotdraw.color.CIELCHabColorSpace", + "projectName": "jhotdraw-gui" + }, + { + "type": "java", + "name": "EditCanvasPanel", + "request": "launch", + "mainClass": "org.jhotdraw.gui.action.EditCanvasPanel", + "projectName": "jhotdraw-gui" + }, + { + "type": "java", + "name": "CIEXYChromaticityDiagram", + "request": "launch", + "mainClass": "org.jhotdraw.samples.color.CIEXYChromaticityDiagram", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "JMixer", + "request": "launch", + "mainClass": "org.jhotdraw.samples.color.JMixer", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "WheelsAndSlidersMain", + "request": "launch", + "mainClass": "org.jhotdraw.samples.color.WheelsAndSlidersMain", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "FontChooserMain", + "request": "launch", + "mainClass": "org.jhotdraw.samples.font.FontChooserMain", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "ActivityMonitorSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.ActivityMonitorSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "AnimationSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.AnimationSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "BezierDemo", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.BezierDemo", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "ConnectingFiguresSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.ConnectingFiguresSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "CreationToolSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.CreationToolSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "DefaultDOMStorableSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.DefaultDOMStorableSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "DnDMultiEditorSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.DnDMultiEditorSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "EditorSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.EditorSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "FileIconsSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.FileIconsSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "LabeledLineConnectionFigureSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.LabeledLineConnectionFigureSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "LayouterSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.LayouterSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "MovableChildFiguresSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.MovableChildFiguresSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "MovableChildFiguresSampleWithAbstractDrawingView", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.MovableChildFiguresSampleWithAbstractDrawingView", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "MovableChildFiguresSampleWithDelegatorDrawingView", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.MovableChildFiguresSampleWithDelegatorDrawingView", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "MultiEditorSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.MultiEditorSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "SVGDrawingPanelSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.SVGDrawingPanelSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "SelectionToolSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.SelectionToolSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "SmartConnectionFigureSample", + "request": "launch", + "mainClass": "org.jhotdraw.samples.mini.SmartConnectionFigureSample", + "projectName": "jhotdraw-samples-mini" + }, + { + "type": "java", + "name": "Main", + "request": "launch", + "mainClass": "org.jhotdraw.samples.draw.Main", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "Main(1)", + "request": "launch", + "mainClass": "org.jhotdraw.samples.net.Main", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "NetApplet", + "request": "launch", + "mainClass": "org.jhotdraw.samples.net.NetApplet", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "Main(2)", + "request": "launch", + "mainClass": "org.jhotdraw.samples.odg.Main", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "Main(3)", + "request": "launch", + "mainClass": "org.jhotdraw.samples.pert.Main", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "PertApplet", + "request": "launch", + "mainClass": "org.jhotdraw.samples.pert.PertApplet", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "Main(4)", + "request": "launch", + "mainClass": "org.jhotdraw.samples.svg.Main", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "SVGApplet", + "request": "launch", + "mainClass": "org.jhotdraw.samples.svg.SVGApplet", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "Main(5)", + "request": "launch", + "mainClass": "org.jhotdraw.samples.teddy.Main", + "projectName": "jhotdraw-samples-misc" + }, + { + "type": "java", + "name": "Bezier", + "request": "launch", + "mainClass": "org.jhotdraw.geom.Bezier", + "projectName": "jhotdraw-utils" + } + ] +} \ No newline at end of file diff --git a/jhotdraw-actions/jhotdraw-actions.iml b/jhotdraw-actions/jhotdraw-actions.iml index 91c16289e..cb87511cc 100644 --- a/jhotdraw-actions/jhotdraw-actions.iml +++ b/jhotdraw-actions/jhotdraw-actions.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-actions/src/main/java/org/jhotdraw/action/window/ArrangeWindowsAction.java b/jhotdraw-actions/src/main/java/org/jhotdraw/action/window/ArrangeWindowsAction.java index 91986deda..82a2bf954 100644 --- a/jhotdraw-actions/src/main/java/org/jhotdraw/action/window/ArrangeWindowsAction.java +++ b/jhotdraw-actions/src/main/java/org/jhotdraw/action/window/ArrangeWindowsAction.java @@ -10,9 +10,6 @@ import java.awt.event.ActionEvent; import javax.swing.AbstractAction; import org.jhotdraw.api.gui.Arrangeable; -import static org.jhotdraw.api.gui.Arrangeable.Arrangement.CASCADE; -import static org.jhotdraw.api.gui.Arrangeable.Arrangement.HORIZONTAL; -import static org.jhotdraw.api.gui.Arrangeable.Arrangement.VERTICAL; import org.jhotdraw.util.ResourceBundleUtil; /** diff --git a/jhotdraw-actions/src/main/resources/org/jhotdraw/action/Labels.properties b/jhotdraw-actions/src/main/resources/org/jhotdraw/action/Labels.properties index 7bc447b22..2cbd941dc 100644 --- a/jhotdraw-actions/src/main/resources/org/jhotdraw/action/Labels.properties +++ b/jhotdraw-actions/src/main/resources/org/jhotdraw/action/Labels.properties @@ -1,198 +1,291 @@ # Sample ResourceBundle properties file +accelerator.alt.default=Alt- +accelerator.alt.mac=\u2387 +accelerator.alt=${accelerator.alt.[$os]} +accelerator.altGraph.default=AltGraph- +accelerator.altGraph=${accelerator.altGraph.[$os]} +accelerator.control=${accelerator.ctrl.[$os]} +accelerator.ctrl.default=Ctrl- +accelerator.ctrl=${accelerator.ctrl.[$os]} +accelerator.meta.default=Meta- +accelerator.meta.mac=\u2318 +accelerator.meta.win=Windows- +accelerator.meta=${accelerator.meta.[$os]} +accelerator.shift.default=Shift- +accelerator.shift.mac=\u21e7 +accelerator.shift=${accelerator.shift.[$os]} application.about.accelerator= -application.about.smallIcon= application.about.largeIcon= application.about.mnemonic.default=A +application.about.mnemonic.mac= +application.about.mnemonic=${application.about.mnemonic.[$os]} +application.about.smallIcon= application.about.text=About application.about.toolTipText= application.debug.accelerator= application.debug.mnemonic.default=D +application.debug.mnemonic.mac= +application.debug.mnemonic=${application.debug.mnemonic.[$os]} application.debug.text=Debug application.exit.accelerator.default= application.exit.accelerator.mac=meta Q application.exit.accelerator=${application.exit.accelerator.[$os]} -application.exit.smallIcon= +application.exit.cancelOption=Cancel +application.exit.discardChangesOption=Discard Changes +application.exit.dontSaveOption=Don't Save +application.exit.doYouWantToReview.details=If you don't review your documents, all your changes will be lost. +application.exit.doYouWantToReview.message=You have {0} documents with unsaved changes. Do you want to review these changes before quitting? +application.exit.doYouWantToSave.details=If you don't save, your changes will be lost. +application.exit.doYouWantToSave.message=Do you want to save changes to the document "{0}" before exiting? application.exit.largeIcon=${imageDir}/spacerIcon.png application.exit.mnemonic.default=x application.exit.mnemonic.mac= application.exit.mnemonic=${application.exit.mnemonic.[$os]} +application.exit.reviewChangesOption=Review Changes... +application.exit.saveOption=Save... +application.exit.smallIcon= application.exit.text.default=Exit application.exit.text.mac=Quit application.exit.text=${application.exit.text.[$os]} application.exit.toolTipText= +application.preferences.accelerator= +application.preferences.largeIcon= +application.preferences.mnemonic=${application.preferences.mnemonic.[$os]} +application.preferences.smallIcon= +application.preferences.text=Preferences... +application.preferences.toolTipText= edit.accelerator= edit.cancel.text=Cancel -edit.smallIcon= -edit.largeIcon= edit.clearSelection.accelerator.default=shift ctrl A edit.clearSelection.accelerator.mac=shift meta A edit.clearSelection.accelerator=${edit.clearSelection.accelerator.[$os]} +edit.clearSelection.icon= +edit.clearSelection.largeIcon= +edit.clearSelection.mnemonic.default= edit.clearSelection.mnemonic=${edit.clearSelection.mnemonic.[$os]} edit.clearSelection.smallIcon= -edit.clearSelection.largeIcon=${imageDir}/spacerIcon.png edit.clearSelection.text=Deselect All edit.clearSelection.toolTipText= edit.copy.accelerator.default=ctrl C edit.copy.accelerator.mac=meta C edit.copy.accelerator=${edit.copy.accelerator.[$os]} -edit.copy.smallIcon= edit.copy.largeIcon=${imageDir}/editCopy.png +edit.copy.mnemonic.default= edit.copy.mnemonic=${edit.copy.mnemonic.[$os]} +edit.copy.smallIcon=${imageDir}/editCopy.png edit.copy.text=Copy edit.copy.toolTipText=Copy (${edit.copy.accelerator,accelerator}) edit.cut.accelerator.default=ctrl X edit.cut.accelerator.mac=meta X edit.cut.accelerator=${edit.cut.accelerator.[$os]} -edit.cut.smallIcon= edit.cut.largeIcon=${imageDir}/editCut.png +edit.cut.mnemonic.default= edit.cut.mnemonic=${edit.cut.mnemonic.[$os]} +edit.cut.smallIcon=${imageDir}/editCut.png edit.cut.text=Cut edit.cut.toolTipText=Cut (${edit.cut.accelerator,accelerator}) edit.delete.accelerator=DELETE -edit.delete.smallIcon= -edit.delete.largeIcon=${imageDir}/spacerIcon.png +edit.delete.icon= +edit.delete.largeIcon= +edit.delete.mnemonic.default= edit.delete.mnemonic=${edit.delete.mnemonic.[$os]} +edit.delete.smallIcon= edit.delete.text=Delete edit.delete.toolTipText= edit.duplicate.accelerator= +edit.duplicate.icon= +edit.duplicate.largeIcon= +edit.duplicate.mnemonic.default= edit.duplicate.mnemonic=${edit.duplicate.mnemonic.[$os]} edit.duplicate.smallIcon= -edit.duplicate.largeIcon=${imageDir}/spacerIcon.png edit.duplicate.text=Duplicate edit.duplicate.toolTipText= -edit.find.smallIcon= +edit.find.accelerator.default=ctrl F +edit.find.accelerator.mac=meta F +edit.find.accelerator=${edit.find.accelerator.[$os]} edit.find.largeIcon= -edit.find.smallIcon= edit.find.largeIcon=${imageDir}/spacerIcon.png +edit.find.mnemonic.default=F +edit.find.mnemonic.mac= +edit.find.mnemonic=${edit.find.mnemonic.[$os]} +edit.find.smallIcon= +edit.find.smallIcon= edit.find.text=Find... edit.find.toolTipText= edit.help.text.default=? edit.help.text.mac=Help edit.help.text=${edit.help.text.[$os]} +edit.largeIcon= +edit.mnemonic.default=E +edit.mnemonic.mac= edit.mnemonic=${edit.mnemonic.[$os]} edit.paste.accelerator.default=ctrl V edit.paste.accelerator.mac=meta V edit.paste.accelerator=${edit.paste.accelerator.[$os]} -edit.paste.smallIcon= edit.paste.largeIcon=${imageDir}/editPaste.png +edit.paste.mnemonic.default= edit.paste.mnemonic=${edit.paste.mnemonic.[$os]} +edit.paste.smallIcon=${imageDir}/editPaste.png edit.paste.text=Paste edit.paste.toolTipText=Paste (${edit.paste.accelerator,accelerator}) -edit.redo.smallIcon= -edit.redo.largeIcon=${imageDir}/editRedo.png edit.redo.accelerator.default=ctrl Y edit.redo.accelerator.mac=shift meta Z edit.redo.accelerator=${edit.redo.accelerator.[$os]} +edit.redo.largeIcon=${imageDir}/editRedo.png +edit.redo.mnemonic.default= edit.redo.mnemonic=${edit.redo.mnemonic.[$os]} +edit.redo.smallIcon=${imageDir}/editRedo.png edit.redo.text=Redo edit.redo.toolTipText=Redo (${edit.redo.accelerator,accelerator}) edit.selectAll.accelerator.default=ctrl A edit.selectAll.accelerator.mac=meta A edit.selectAll.accelerator=${edit.selectAll.accelerator.[$os]} +edit.selectAll.icon= +edit.selectAll.largeIcon= +edit.selectAll.mnemonic.default= edit.selectAll.mnemonic=${edit.selectAll.mnemonic.[$os]} edit.selectAll.smallIcon= -edit.selectAll.largeIcon=${imageDir}/spacerIcon.png edit.selectAll.text=Select All edit.selectAll.toolTipText= +edit.smallIcon= edit.text=Edit edit.undo.accelerator.default=ctrl Z edit.undo.accelerator.mac=meta Z edit.undo.accelerator=${edit.undo.accelerator.[$os]} -edit.undo.smallIcon= edit.undo.largeIcon=${imageDir}/editUndo.png +edit.undo.mnemonic.default= edit.undo.mnemonic=${edit.undo.mnemonic.[$os]} +edit.undo.smallIcon=${imageDir}/editUndo.png edit.undo.text=Undo edit.undo.toolTipText=Undo (${edit.undo.accelerator,accelerator}) file.accelerator= -file.smallIcon= -file.largeIcon= +file.clear.accelerator= +file.clear.largeIcon= +file.clear.mnemonic.default= +file.clear.mnemonic=${file.clear.mnemonic.[$os]} +file.clear.smallIcon= +file.clear.text=Clear +file.clear.toolTipText=Clear file.clearRecentFiles.accelerator= -file.clearRecentFiles.smallIcon= file.clearRecentFiles.largeIcon= file.clearRecentFiles.mnemonic= +file.clearRecentFiles.smallIcon= file.clearRecentFiles.text=Clear Menu file.clearRecentFiles.toolTipText= file.close.accelerator.default=ctrl F4 file.close.accelerator.mac=meta W file.close.accelerator=${file.close.accelerator.[$os]} -file.close.smallIcon= file.close.largeIcon=${imageDir}/spacerIcon.png file.close.mnemonic.default=C +file.close.mnemonic.mac= +file.close.mnemonic=${file.close.mnemonic.[$os]} +file.close.smallIcon= file.close.text=Close file.close.toolTipText= file.export.accelerator= -file.export.smallIcon= file.export.largeIcon=${imageDir}/spacerIcon.png +file.export.mnemonic.default= file.export.mnemonic=${file.export.mnemonic.[$os]} +file.export.smallIcon= file.export.text=Export... file.export.toolTipText= -file.load.smallIcon= +file.largeIcon= +file.load.accelerator.default=ctrl O +file.load.accelerator.mac=meta O +file.load.accelerator=${file.open.accelerator.[$os]} +file.load.couldntLoad.message=Couldn''t load the file "{0}". +file.load.fileDoesNotExist.message=The file "{0}" does not exist. file.load.largeIcon=${imageDir}/fileOpen.png +file.load.mnemonic.default=O +file.load.mnemonic.mac= +file.load.mnemonic=${file.load.mnemonic.[$os]} +file.load.smallIcon= file.load.text=Load... +file.load.toolTipText=Load File (${file.load.accelerator,accelerator}) +file.loadRecent.largeIcon=${imageDir}/spacerIcon.png +file.loadRecent.mnemonic.default= +file.loadRecent.mnemonic=${file.loadRecent.mnemonic.[$os]} +file.loadRecent.smallIcon= +file.loadRecent.text=Load Recent +file.mnemonic.default=F +file.mnemonic.mac= file.mnemonic=${file.mnemonic.[$os]} file.new.accelerator.default=ctrl N file.new.accelerator.mac=meta N file.new.accelerator=${file.new.accelerator.[$os]} -file.new.smallIcon= file.new.largeIcon=${imageDir}/fileNew.png file.new.mnemonic.default=N +file.new.mnemonic.mac= +file.new.mnemonic=${file.new.mnemonic.[$os]} +file.new.smallIcon= file.new.text=New file.new.toolTipText=New File (${file.new.accelerator,accelerator}) +file.newWindow.accelerator.default=ctrl N +file.newWindow.accelerator.mac=meta N +file.newWindow.accelerator=${file.newWindow.accelerator.[$os]} +file.newWindow.largeIcon= +file.newWindow.mnemonic.default= +file.newWindow.mnemonic=${file.newWindow.mnemonic.[$os]} +file.newWindow.smallIcon= +file.newWindow.text=New Window +file.newWindow.toolTipText= file.open.accelerator.default=ctrl O file.open.accelerator.mac=meta O file.open.accelerator=${file.open.accelerator.[$os]} -file.load.accelerator.default=ctrl O -file.load.accelerator.mac=meta O -file.load.accelerator=${file.open.accelerator.[$os]} file.open.couldntOpen.message=Couldn''t open the file "{0}". file.open.fileDoesNotExist.message=The file "{0}" does not exist. -file.open.unsupportedFileFormat.message=The format of the file is not supported. -file.open.smallIcon= file.open.largeIcon=${imageDir}/fileOpen.png file.open.mnemonic.default=O +file.open.mnemonic.mac= +file.open.mnemonic=${file.open.mnemonic.[$os]} +file.open.smallIcon= file.open.text=Open... file.open.toolTipText=Open File\u2026 (${file.open.accelerator,accelerator}) -file.openDirectory.smallIcon= +file.open.unsupportedFileFormat.message=The format of the file is not supported. file.openDirectory.largeIcon=${imageDir}/spacerIcon.png file.openDirectory.mnemonic=${file.openDirectory.mnemonic.[$os]} +file.openDirectory.smallIcon= file.openDirectory.text=Open Directory... -file.openRecent.smallIcon= file.openRecent.largeIcon=${imageDir}/spacerIcon.png +file.openRecent.mnemonic.default= file.openRecent.mnemonic=${file.openRecent.mnemonic.[$os]} +file.openRecent.smallIcon= file.openRecent.text=Open Recent -file.loadRecent.smallIcon= -file.loadRecent.largeIcon=${imageDir}/spacerIcon.png -file.loadRecent.mnemonic=${file.loadRecent.mnemonic.[$os]} -file.loadRecent.text=Load Recent file.print.accelerator= file.print.couldntPrint.message=Couldn''t print the document. -file.print.smallIcon= file.print.largeIcon=${imageDir}/filePrint.png +file.print.mnemonic.default= file.print.mnemonic=${file.print.mnemonic.[$os]} +file.print.smallIcon= file.print.text=Print... file.print.toolTipText= file.save.accelerator.default=ctrl S file.save.accelerator.mac=meta S file.save.accelerator=${file.save.accelerator.[$os]} -file.save.smallIcon= +file.save.couldntSave.message=Couldn''t save to the file "{0}" file.save.largeIcon=${imageDir}/fileSave.png file.save.mnemonic.default=S +file.save.mnemonic.mac= +file.save.mnemonic=${file.save.mnemonic.[$os]} +file.save.smallIcon= file.save.text=Save file.save.toolTipText=Save File (${file.save.accelerator,accelerator}) file.saveAs.accelerator.default= file.saveAs.accelerator.mac=shift meta S file.saveAs.accelerator=${file.saveAs.accelerator.[$os]} -file.saveAs.smallIcon= +file.saveAs.couldntSaveIntoOpenFile.message=Couldn''t save to the file "{0}" because it is open in another window. file.saveAs.largeIcon=${imageDir}/spacerIcon.png +file.saveAs.mnemonic.default= file.saveAs.mnemonic=${file.saveAs.mnemonic.[$os]} +file.saveAs.smallIcon= file.saveAs.text=Save As... file.saveAs.toolTipText= file.saveBefore.cancelOption.text=Cancel -file.save.couldntSave.message=Couldn''t save to the file "{0}" file.saveBefore.dontSaveOption.text=Don't Save -file.saveBefore.doYouWantToSave.message=Do you want to save your changes to the document "{0}"? file.saveBefore.doYouWantToSave.details=If you don't save, your changes will be lost. +file.saveBefore.doYouWantToSave.message=Do you want to save your changes to the document "{0}"? file.saveBefore.saveOption.text=Save +file.smallIcon= file.text=File filechooser.export=Export find.text=Find... @@ -200,164 +293,76 @@ frame.title.default={0}{2,choice,1\#|1< {2}} - {1} frame.title.mac={0}{2,choice,1#|1< {2}} frame.title=${frame.title.[$os]} help.accelerator= +help.largeIcon= help.mnemonic.default=? -help.text=${help.text.[$os]} +help.mnemonic.mac= +help.mnemonic=${help.mnemonic.[$os]} +help.smallIcon= help.text.default=? -imageDir=/org/jhotdraw/app/action/images +help.text.mac=Help +help.text=${help.text.[$os]} internalFrame.title={0}{2,choice,1\#|1< {2}} standardToolBar.title=Standard toolBars=Tool Bars unnamedFile=unnamed view.accelerator= +view.largeIcon= view.mnemonic.default=V -view.text=View +view.mnemonic.mac= +view.mnemonic=${view.mnemonic.[$os]} view.smallIcon= -view.largeIcon= +view.text=View +window.arrangeCascade.accelerator= +window.arrangeCascade.largeIcon= +window.arrangeCascade.mnemonic.default= +window.arrangeCascade.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} +window.arrangeCascade.smallIcon= window.arrangeCascade.text=Arrange Cascade +window.arrangeCascade.toolTipText= +window.arrangeHorizontal.accelerator= +window.arrangeHorizontal.largeIcon= +window.arrangeHorizontal.mnemonic.default= +window.arrangeHorizontal.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} +window.arrangeHorizontal.smallIcon= window.arrangeHorizontal.text=Arrange Horizontal +window.arrangeHorizontal.toolTipText= window.arrangeVertical.accelerator= +window.arrangeVertical.largeIcon= +window.arrangeVertical.mnemonic.default= window.arrangeVertical.mnemonic=${window.arrangeVertical.mnemonic.[$os]} +window.arrangeVertical.smallIcon= window.arrangeVertical.text=Arrange Vertical +window.arrangeVertical.toolTipText= window.focus.accelerator= -window.focus.smallIcon= window.focus.largeIcon= +window.focus.mnemonic.default= window.focus.mnemonic=${window.focus.mnemonic.[$os]} +window.focus.smallIcon= window.focus.text=Focus window.focus.toolTipText= +window.largeIcon= window.maximize.accelerator= -window.maximize.smallIcon= window.maximize.largeIcon= +window.maximize.mnemonic.default= window.maximize.mnemonic=${window.maximize.mnemonic.[$os]} +window.maximize.smallIcon= window.maximize.text.default=Maximize +window.maximize.text.mac=Zoom +window.maximize.text=${window.maximize.text.[$os]} window.maximize.toolTipText= window.minimize.accelerator.default= window.minimize.accelerator.mac=meta M window.minimize.accelerator=${window.minimize.accelerator.[$os]} -window.minimize.smallIcon= window.minimize.largeIcon= +window.minimize.mnemonic.default= window.minimize.mnemonic=${window.minimize.mnemonic.[$os]} +window.minimize.smallIcon= window.minimize.text=Minimize window.minimize.toolTipText= +window.mnemonic.default=W +window.mnemonic.mac= window.mnemonic=${window.mnemonic.[$os]} -file.newWindow.accelerator=${file.newWindow.accelerator.[$os]} -file.newWindow.smallIcon= -file.newWindow.largeIcon= -file.newWindow.mnemonic=${file.newWindow.mnemonic.[$os]} -file.newWindow.text=New Window -window.text=Window window.smallIcon= -window.largeIcon= -help.text.mac=Help -file.newWindow.toolTipText= -help.smallIcon= -help.largeIcon= -file.load.couldntLoad.message=Couldn''t load the file "{0}". -window.maximize.text.mac=Zoom -window.maximize.text=${window.maximize.text.[$os]} -application.preferences.text=Preferences... -application.preferences.toolTipText= -application.preferences.accelerator= -application.preferences.mnemonic=${application.preferences.mnemonic.[$os]} -application.preferences.smallIcon= -application.preferences.largeIcon= -window.arrangeVertical.toolTipText= -window.arrangeVertical.smallIcon= -window.arrangeVertical.largeIcon= -window.arrangeHorizontal.toolTipText= -window.arrangeHorizontal.accelerator= -window.arrangeHorizontal.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} -window.arrangeHorizontal.smallIcon= -window.arrangeHorizontal.largeIcon= -window.arrangeCascade.toolTipText= -window.arrangeCascade.accelerator= -window.arrangeCascade.smallIcon= -window.arrangeCascade.largeIcon= -window.arrangeCascade.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} -file.mnemonic.default=F -file.mnemonic.mac= -edit.mnemonic.default=E -edit.mnemonic.mac= -window.mnemonic.mac= -window.mnemonic.default=W -application.about.mnemonic=${application.about.mnemonic.[$os]} -application.about.mnemonic.mac= -application.debug.mnemonic=${application.debug.mnemonic.[$os]} -application.debug.mnemonic.mac= -edit.clearSelection.mnemonic.default= -file.close.mnemonic=${file.close.mnemonic.[$os]} -file.close.mnemonic.mac= -file.new.mnemonic=${file.new.mnemonic.[$os]} -file.new.mnemonic.mac= -file.open.mnemonic=${file.open.mnemonic.[$os]} -file.open.mnemonic.mac= -file.save.mnemonic=${file.save.mnemonic.[$os]} -file.save.mnemonic.mac= -help.mnemonic=${help.mnemonic.[$os]} -help.mnemonic.mac= -view.mnemonic=${view.mnemonic.[$os]} -view.mnemonic.mac= -file.newWindow.mnemonic.default= -file.saveAs.mnemonic.default= -file.print.mnemonic.default= -edit.undo.mnemonic.default= -edit.redo.mnemonic.default= -edit.cut.mnemonic.default= -edit.copy.mnemonic.default= -edit.paste.mnemonic.default= -edit.delete.mnemonic.default= -edit.duplicate.mnemonic.default= -edit.selectAll.mnemonic.default= -window.maximize.mnemonic.default= -window.minimize.mnemonic.default= -file.export.mnemonic.default= -file.openRecent.mnemonic.default= -window.focus.mnemonic.default= -application.exit.doYouWantToSave.message=Do you want to save changes to the document "{0}" before exiting? -application.exit.doYouWantToSave.details=If you don't save, your changes will be lost. -application.exit.doYouWantToReview.message=You have {0} documents with unsaved changes. Do you want to review these changes before quitting? -application.exit.doYouWantToReview.details=If you don't review your documents, all your changes will be lost. -application.exit.saveOption=Save... -application.exit.dontSaveOption=Don't Save -application.exit.cancelOption=Cancel -application.exit.reviewChangesOption=Review Changes... -application.exit.discardChangesOption=Discard Changes -file.load.fileDoesNotExist.message=The file "{0}" does not exist. -window.arrangeVertical.mnemonic.default= -window.arrangeHorizontal.mnemonic.default= -window.arrangeCascade.mnemonic.default= -file.clear.text=Clear -file.clear.toolTipText=Clear -file.clear.accelerator= -file.clear.mnemonic=${file.clear.mnemonic.[$os]} -file.clear.mnemonic.default= -file.clear.smallIcon= -file.clear.largeIcon= -accelerator.meta=${accelerator.meta.[$os]} -accelerator.meta.default=Meta- -accelerator.meta.win=Windows- -accelerator.meta.mac=\u2318 -accelerator.shift=${accelerator.shift.[$os]} -accelerator.shift.default=Shift- -accelerator.shift.mac=\u21e7 -accelerator.ctrl=${accelerator.ctrl.[$os]} -accelerator.ctrl.default=Ctrl- -accelerator.control=${accelerator.ctrl.[$os]} -accelerator.alt=${accelerator.alt.[$os]} -accelerator.alt.default=Alt- -accelerator.alt.mac=\u2387 -accelerator.altGraph=${accelerator.altGraph.[$os]} -accelerator.altGraph.default=AltGraph- -file.load.toolTipText=Load File (${file.load.accelerator,accelerator}) -file.load.mnemonic=${file.load.mnemonic.[$os]} -file.load.mnemonic.default=O -file.load.mnemonic.mac= -file.loadRecent.mnemonic.default= -file.newWindow.accelerator.default=ctrl N -file.newWindow.accelerator.mac=meta N -edit.find.accelerator=${edit.find.accelerator.[$os]} -edit.find.accelerator.default=ctrl F -edit.find.accelerator.mac=meta F -edit.find.mnemonic=${edit.find.mnemonic.[$os]} -edit.find.mnemonic.default=F -edit.find.mnemonic.mac= -file.saveAs.couldntSaveIntoOpenFile.message=Couldn''t save to the file "{0}" because it is open in another window. +window.text=Window + +imageDir=/org/jhotdraw/app/action/images \ No newline at end of file diff --git a/jhotdraw-api/jhotdraw-api.iml b/jhotdraw-api/jhotdraw-api.iml index 0a482f7c3..afefd989d 100644 --- a/jhotdraw-api/jhotdraw-api.iml +++ b/jhotdraw-api/jhotdraw-api.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-app/jhotdraw-app.iml b/jhotdraw-app/jhotdraw-app.iml index 74d3ca93a..115d6aa21 100644 --- a/jhotdraw-app/jhotdraw-app.iml +++ b/jhotdraw-app/jhotdraw-app.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-app/src/main/resources/org/jhotdraw/app/Labels.properties b/jhotdraw-app/src/main/resources/org/jhotdraw/app/Labels.properties index 7bc447b22..7738cf4dc 100644 --- a/jhotdraw-app/src/main/resources/org/jhotdraw/app/Labels.properties +++ b/jhotdraw-app/src/main/resources/org/jhotdraw/app/Labels.properties @@ -1,198 +1,292 @@ # Sample ResourceBundle properties file +accelerator.alt.default=Alt- +accelerator.alt.mac=\u2387 +accelerator.alt=${accelerator.alt.[$os]} +accelerator.altGraph.default=AltGraph- +accelerator.altGraph=${accelerator.altGraph.[$os]} +accelerator.control=${accelerator.ctrl.[$os]} +accelerator.ctrl.default=Ctrl- +accelerator.ctrl=${accelerator.ctrl.[$os]} +accelerator.meta.default=Meta- +accelerator.meta.mac=\u2318 +accelerator.meta.win=Windows- +accelerator.meta=${accelerator.meta.[$os]} +accelerator.shift.default=Shift- +accelerator.shift.mac=\u21e7 +accelerator.shift=${accelerator.shift.[$os]} application.about.accelerator= -application.about.smallIcon= +application.about.icon= application.about.largeIcon= application.about.mnemonic.default=A +application.about.mnemonic.mac= +application.about.mnemonic=${application.about.mnemonic.[$os]} +application.about.smallIcon= application.about.text=About application.about.toolTipText= application.debug.accelerator= application.debug.mnemonic.default=D +application.debug.mnemonic.mac= +application.debug.mnemonic=${application.debug.mnemonic.[$os]} application.debug.text=Debug application.exit.accelerator.default= application.exit.accelerator.mac=meta Q application.exit.accelerator=${application.exit.accelerator.[$os]} -application.exit.smallIcon= +application.exit.cancelOption=Cancel +application.exit.discardChangesOption=Discard Changes +application.exit.dontSaveOption=Don't Save +application.exit.doYouWantToReview.details=If you don't review your documents, all your changes will be lost. +application.exit.doYouWantToReview.message=You have {0} documents with unsaved changes. Do you want to review these changes before quitting? +application.exit.doYouWantToSave.details=If you don't save, your changes will be lost. +application.exit.doYouWantToSave.message=Do you want to save changes to the document "{0}" before exiting? application.exit.largeIcon=${imageDir}/spacerIcon.png application.exit.mnemonic.default=x application.exit.mnemonic.mac= application.exit.mnemonic=${application.exit.mnemonic.[$os]} +application.exit.reviewChangesOption=Review Changes... +application.exit.saveOption=Save... +application.exit.smallIcon= application.exit.text.default=Exit application.exit.text.mac=Quit application.exit.text=${application.exit.text.[$os]} application.exit.toolTipText= +application.preferences.accelerator= +application.preferences.largeIcon= +application.preferences.mnemonic=${application.preferences.mnemonic.[$os]} +application.preferences.smallIcon= +application.preferences.text=Preferences... +application.preferences.toolTipText= edit.accelerator= edit.cancel.text=Cancel -edit.smallIcon= -edit.largeIcon= edit.clearSelection.accelerator.default=shift ctrl A edit.clearSelection.accelerator.mac=shift meta A edit.clearSelection.accelerator=${edit.clearSelection.accelerator.[$os]} +edit.clearSelection.largeIcon=${imageDir}/spacerIcon.png +edit.clearSelection.mnemonic.default= edit.clearSelection.mnemonic=${edit.clearSelection.mnemonic.[$os]} edit.clearSelection.smallIcon= -edit.clearSelection.largeIcon=${imageDir}/spacerIcon.png edit.clearSelection.text=Deselect All edit.clearSelection.toolTipText= edit.copy.accelerator.default=ctrl C edit.copy.accelerator.mac=meta C edit.copy.accelerator=${edit.copy.accelerator.[$os]} -edit.copy.smallIcon= edit.copy.largeIcon=${imageDir}/editCopy.png +edit.copy.mnemonic.default= edit.copy.mnemonic=${edit.copy.mnemonic.[$os]} +edit.copy.smallIcon= edit.copy.text=Copy edit.copy.toolTipText=Copy (${edit.copy.accelerator,accelerator}) edit.cut.accelerator.default=ctrl X edit.cut.accelerator.mac=meta X edit.cut.accelerator=${edit.cut.accelerator.[$os]} -edit.cut.smallIcon= edit.cut.largeIcon=${imageDir}/editCut.png +edit.cut.mnemonic.default= edit.cut.mnemonic=${edit.cut.mnemonic.[$os]} +edit.cut.smallIcon= edit.cut.text=Cut edit.cut.toolTipText=Cut (${edit.cut.accelerator,accelerator}) edit.delete.accelerator=DELETE -edit.delete.smallIcon= edit.delete.largeIcon=${imageDir}/spacerIcon.png +edit.delete.mnemonic.default= edit.delete.mnemonic=${edit.delete.mnemonic.[$os]} +edit.delete.smallIcon= edit.delete.text=Delete edit.delete.toolTipText= edit.duplicate.accelerator= +edit.duplicate.largeIcon=${imageDir}/spacerIcon.png +edit.duplicate.mnemonic.default= edit.duplicate.mnemonic=${edit.duplicate.mnemonic.[$os]} edit.duplicate.smallIcon= -edit.duplicate.largeIcon=${imageDir}/spacerIcon.png edit.duplicate.text=Duplicate edit.duplicate.toolTipText= -edit.find.smallIcon= -edit.find.largeIcon= -edit.find.smallIcon= +edit.find.accelerator.default=ctrl F +edit.find.accelerator.mac=meta F +edit.find.accelerator=${edit.find.accelerator.[$os]} edit.find.largeIcon=${imageDir}/spacerIcon.png +edit.find.mnemonic.default=F +edit.find.mnemonic.mac= +edit.find.mnemonic=${edit.find.mnemonic.[$os]} +edit.find.smallIcon= edit.find.text=Find... edit.find.toolTipText= edit.help.text.default=? edit.help.text.mac=Help edit.help.text=${edit.help.text.[$os]} +edit.icon= +edit.largeIcon= +edit.mnemonic.default=E +edit.mnemonic.mac= edit.mnemonic=${edit.mnemonic.[$os]} edit.paste.accelerator.default=ctrl V edit.paste.accelerator.mac=meta V edit.paste.accelerator=${edit.paste.accelerator.[$os]} -edit.paste.smallIcon= edit.paste.largeIcon=${imageDir}/editPaste.png +edit.paste.mnemonic.default= edit.paste.mnemonic=${edit.paste.mnemonic.[$os]} +edit.paste.smallIcon= edit.paste.text=Paste edit.paste.toolTipText=Paste (${edit.paste.accelerator,accelerator}) -edit.redo.smallIcon= -edit.redo.largeIcon=${imageDir}/editRedo.png edit.redo.accelerator.default=ctrl Y edit.redo.accelerator.mac=shift meta Z edit.redo.accelerator=${edit.redo.accelerator.[$os]} +edit.redo.largeIcon=${imageDir}/editRedo.png +edit.redo.mnemonic.default= edit.redo.mnemonic=${edit.redo.mnemonic.[$os]} +edit.redo.smallIcon= edit.redo.text=Redo edit.redo.toolTipText=Redo (${edit.redo.accelerator,accelerator}) edit.selectAll.accelerator.default=ctrl A edit.selectAll.accelerator.mac=meta A edit.selectAll.accelerator=${edit.selectAll.accelerator.[$os]} +edit.selectAll.largeIcon=${imageDir}/spacerIcon.png +edit.selectAll.mnemonic.default= edit.selectAll.mnemonic=${edit.selectAll.mnemonic.[$os]} edit.selectAll.smallIcon= -edit.selectAll.largeIcon=${imageDir}/spacerIcon.png edit.selectAll.text=Select All edit.selectAll.toolTipText= +edit.smallIcon= edit.text=Edit edit.undo.accelerator.default=ctrl Z edit.undo.accelerator.mac=meta Z edit.undo.accelerator=${edit.undo.accelerator.[$os]} -edit.undo.smallIcon= edit.undo.largeIcon=${imageDir}/editUndo.png +edit.undo.mnemonic.default= edit.undo.mnemonic=${edit.undo.mnemonic.[$os]} +edit.undo.smallIcon= edit.undo.text=Undo edit.undo.toolTipText=Undo (${edit.undo.accelerator,accelerator}) file.accelerator= -file.smallIcon= -file.largeIcon= +file.clear.accelerator= +file.clear.largeIcon= +file.clear.mnemonic.default= +file.clear.mnemonic=${file.clear.mnemonic.[$os]} +file.clear.smallIcon= +file.clear.text=Clear +file.clear.toolTipText=Clear file.clearRecentFiles.accelerator= -file.clearRecentFiles.smallIcon= +file.clearRecentFiles.icon= file.clearRecentFiles.largeIcon= file.clearRecentFiles.mnemonic= +file.clearRecentFiles.smallIcon= file.clearRecentFiles.text=Clear Menu file.clearRecentFiles.toolTipText= file.close.accelerator.default=ctrl F4 file.close.accelerator.mac=meta W file.close.accelerator=${file.close.accelerator.[$os]} -file.close.smallIcon= -file.close.largeIcon=${imageDir}/spacerIcon.png +file.close.icon= +file.close.largeIcon= file.close.mnemonic.default=C +file.close.mnemonic.mac= +file.close.mnemonic=${file.close.mnemonic.[$os]} +file.close.smallIcon= file.close.text=Close file.close.toolTipText= file.export.accelerator= -file.export.smallIcon= +file.export.icon= file.export.largeIcon=${imageDir}/spacerIcon.png +file.export.mnemonic.default= file.export.mnemonic=${file.export.mnemonic.[$os]} +file.export.smallIcon= file.export.text=Export... file.export.toolTipText= -file.load.smallIcon= +file.icon= +file.largeIcon= +file.load.accelerator.default=ctrl O +file.load.accelerator.mac=meta O +file.load.accelerator=${file.open.accelerator.[$os]} +file.load.couldntLoad.message=Couldn''t load the file "{0}". +file.load.fileDoesNotExist.message=The file "{0}" does not exist. file.load.largeIcon=${imageDir}/fileOpen.png +file.load.mnemonic.default=O +file.load.mnemonic.mac= +file.load.mnemonic=${file.load.mnemonic.[$os]} +file.load.smallIcon= file.load.text=Load... +file.load.toolTipText=Load File (${file.load.accelerator,accelerator}) +file.loadRecent.largeIcon=${imageDir}/spacerIcon.png +file.loadRecent.mnemonic.default= +file.loadRecent.mnemonic=${file.loadRecent.mnemonic.[$os]} +file.loadRecent.smallIcon= +file.loadRecent.text=Load Recent +file.mnemonic.default=F +file.mnemonic.mac= file.mnemonic=${file.mnemonic.[$os]} file.new.accelerator.default=ctrl N file.new.accelerator.mac=meta N file.new.accelerator=${file.new.accelerator.[$os]} -file.new.smallIcon= file.new.largeIcon=${imageDir}/fileNew.png file.new.mnemonic.default=N +file.new.mnemonic.mac= +file.new.mnemonic=${file.new.mnemonic.[$os]} +file.new.smallIcon=${imageDir}/fileNew.png file.new.text=New file.new.toolTipText=New File (${file.new.accelerator,accelerator}) +file.newWindow.accelerator.default=ctrl N +file.newWindow.accelerator.mac=meta N +file.newWindow.accelerator=${file.newWindow.accelerator.[$os]} +file.newWindow.largeIcon= +file.newWindow.mnemonic.default= +file.newWindow.mnemonic=${file.newWindow.mnemonic.[$os]} +file.newWindow.smallIcon= +file.newWindow.text=New Window +file.newWindow.toolTipText= file.open.accelerator.default=ctrl O file.open.accelerator.mac=meta O file.open.accelerator=${file.open.accelerator.[$os]} -file.load.accelerator.default=ctrl O -file.load.accelerator.mac=meta O -file.load.accelerator=${file.open.accelerator.[$os]} file.open.couldntOpen.message=Couldn''t open the file "{0}". file.open.fileDoesNotExist.message=The file "{0}" does not exist. -file.open.unsupportedFileFormat.message=The format of the file is not supported. -file.open.smallIcon= file.open.largeIcon=${imageDir}/fileOpen.png file.open.mnemonic.default=O +file.open.mnemonic.mac= +file.open.mnemonic=${file.open.mnemonic.[$os]} +file.open.smallIcon=${imageDir}/fileOpen.png file.open.text=Open... file.open.toolTipText=Open File\u2026 (${file.open.accelerator,accelerator}) -file.openDirectory.smallIcon= +file.open.unsupportedFileFormat.message=The format of the file is not supported. file.openDirectory.largeIcon=${imageDir}/spacerIcon.png file.openDirectory.mnemonic=${file.openDirectory.mnemonic.[$os]} +file.openDirectory.smallIcon= file.openDirectory.text=Open Directory... -file.openRecent.smallIcon= file.openRecent.largeIcon=${imageDir}/spacerIcon.png +file.openRecent.mnemonic.default= file.openRecent.mnemonic=${file.openRecent.mnemonic.[$os]} +file.openRecent.smallIcon= file.openRecent.text=Open Recent -file.loadRecent.smallIcon= -file.loadRecent.largeIcon=${imageDir}/spacerIcon.png -file.loadRecent.mnemonic=${file.loadRecent.mnemonic.[$os]} -file.loadRecent.text=Load Recent file.print.accelerator= file.print.couldntPrint.message=Couldn''t print the document. -file.print.smallIcon= file.print.largeIcon=${imageDir}/filePrint.png +file.print.mnemonic.default= file.print.mnemonic=${file.print.mnemonic.[$os]} +file.print.smallIcon= file.print.text=Print... file.print.toolTipText= file.save.accelerator.default=ctrl S file.save.accelerator.mac=meta S file.save.accelerator=${file.save.accelerator.[$os]} -file.save.smallIcon= +file.save.couldntSave.message=Couldn''t save to the file "{0}" file.save.largeIcon=${imageDir}/fileSave.png file.save.mnemonic.default=S +file.save.mnemonic.mac= +file.save.mnemonic=${file.save.mnemonic.[$os]} +file.save.smallIcon=${imageDir}/fileSave.png file.save.text=Save file.save.toolTipText=Save File (${file.save.accelerator,accelerator}) file.saveAs.accelerator.default= file.saveAs.accelerator.mac=shift meta S file.saveAs.accelerator=${file.saveAs.accelerator.[$os]} -file.saveAs.smallIcon= -file.saveAs.largeIcon=${imageDir}/spacerIcon.png +file.saveAs.couldntSaveIntoOpenFile.message=Couldn''t save to the file "{0}" because it is open in another window. +file.saveAs.icon= +file.saveAs.largeIcon= +file.saveAs.mnemonic.default= file.saveAs.mnemonic=${file.saveAs.mnemonic.[$os]} +file.saveAs.smallIcon= file.saveAs.text=Save As... file.saveAs.toolTipText= file.saveBefore.cancelOption.text=Cancel -file.save.couldntSave.message=Couldn''t save to the file "{0}" file.saveBefore.dontSaveOption.text=Don't Save -file.saveBefore.doYouWantToSave.message=Do you want to save your changes to the document "{0}"? file.saveBefore.doYouWantToSave.details=If you don't save, your changes will be lost. +file.saveBefore.doYouWantToSave.message=Do you want to save your changes to the document "{0}"? file.saveBefore.saveOption.text=Save +file.smallIcon= file.text=File filechooser.export=Export find.text=Find... @@ -200,164 +294,79 @@ frame.title.default={0}{2,choice,1\#|1< {2}} - {1} frame.title.mac={0}{2,choice,1#|1< {2}} frame.title=${frame.title.[$os]} help.accelerator= +help.icon= +help.largeIcon= help.mnemonic.default=? -help.text=${help.text.[$os]} +help.mnemonic.mac= +help.mnemonic=${help.mnemonic.[$os]} +help.smallIcon= help.text.default=? -imageDir=/org/jhotdraw/app/action/images +help.text.mac=Help +help.text=${help.text.[$os]} internalFrame.title={0}{2,choice,1\#|1< {2}} standardToolBar.title=Standard toolBars=Tool Bars unnamedFile=unnamed view.accelerator= +view.icon= +view.largeIcon= view.mnemonic.default=V -view.text=View +view.mnemonic.mac= +view.mnemonic=${view.mnemonic.[$os]} view.smallIcon= -view.largeIcon= +view.text=View +window.arrangeCascade.accelerator= +window.arrangeCascade.largeIcon= +window.arrangeCascade.mnemonic.default= +window.arrangeCascade.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} +window.arrangeCascade.smallIcon= window.arrangeCascade.text=Arrange Cascade +window.arrangeCascade.toolTipText= +window.arrangeHorizontal.accelerator= +window.arrangeHorizontal.largeIcon= +window.arrangeHorizontal.mnemonic.default= +window.arrangeHorizontal.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} +window.arrangeHorizontal.smallIcon= window.arrangeHorizontal.text=Arrange Horizontal +window.arrangeHorizontal.toolTipText= window.arrangeVertical.accelerator= +window.arrangeVertical.largeIcon= +window.arrangeVertical.mnemonic.default= window.arrangeVertical.mnemonic=${window.arrangeVertical.mnemonic.[$os]} +window.arrangeVertical.smallIcon= window.arrangeVertical.text=Arrange Vertical +window.arrangeVertical.toolTipText= window.focus.accelerator= -window.focus.smallIcon= window.focus.largeIcon= +window.focus.mnemonic.default= window.focus.mnemonic=${window.focus.mnemonic.[$os]} +window.focus.smallIcon= window.focus.text=Focus window.focus.toolTipText= +window.icon= +window.largeIcon= window.maximize.accelerator= -window.maximize.smallIcon= window.maximize.largeIcon= +window.maximize.mnemonic.default= window.maximize.mnemonic=${window.maximize.mnemonic.[$os]} +window.maximize.smallIcon= window.maximize.text.default=Maximize +window.maximize.text.mac=Zoom +window.maximize.text=${window.maximize.text.[$os]} window.maximize.toolTipText= window.minimize.accelerator.default= window.minimize.accelerator.mac=meta M window.minimize.accelerator=${window.minimize.accelerator.[$os]} -window.minimize.smallIcon= window.minimize.largeIcon= +window.minimize.mnemonic.default= window.minimize.mnemonic=${window.minimize.mnemonic.[$os]} +window.minimize.smallIcon= window.minimize.text=Minimize window.minimize.toolTipText= +window.mnemonic.default=W +window.mnemonic.mac= window.mnemonic=${window.mnemonic.[$os]} -file.newWindow.accelerator=${file.newWindow.accelerator.[$os]} -file.newWindow.smallIcon= -file.newWindow.largeIcon= -file.newWindow.mnemonic=${file.newWindow.mnemonic.[$os]} -file.newWindow.text=New Window -window.text=Window window.smallIcon= -window.largeIcon= -help.text.mac=Help -file.newWindow.toolTipText= -help.smallIcon= -help.largeIcon= -file.load.couldntLoad.message=Couldn''t load the file "{0}". -window.maximize.text.mac=Zoom -window.maximize.text=${window.maximize.text.[$os]} -application.preferences.text=Preferences... -application.preferences.toolTipText= -application.preferences.accelerator= -application.preferences.mnemonic=${application.preferences.mnemonic.[$os]} -application.preferences.smallIcon= -application.preferences.largeIcon= -window.arrangeVertical.toolTipText= -window.arrangeVertical.smallIcon= -window.arrangeVertical.largeIcon= -window.arrangeHorizontal.toolTipText= -window.arrangeHorizontal.accelerator= -window.arrangeHorizontal.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} -window.arrangeHorizontal.smallIcon= -window.arrangeHorizontal.largeIcon= -window.arrangeCascade.toolTipText= -window.arrangeCascade.accelerator= -window.arrangeCascade.smallIcon= -window.arrangeCascade.largeIcon= -window.arrangeCascade.mnemonic=${window.arrangeHorizontal.mnemonic.[$os]} -file.mnemonic.default=F -file.mnemonic.mac= -edit.mnemonic.default=E -edit.mnemonic.mac= -window.mnemonic.mac= -window.mnemonic.default=W -application.about.mnemonic=${application.about.mnemonic.[$os]} -application.about.mnemonic.mac= -application.debug.mnemonic=${application.debug.mnemonic.[$os]} -application.debug.mnemonic.mac= -edit.clearSelection.mnemonic.default= -file.close.mnemonic=${file.close.mnemonic.[$os]} -file.close.mnemonic.mac= -file.new.mnemonic=${file.new.mnemonic.[$os]} -file.new.mnemonic.mac= -file.open.mnemonic=${file.open.mnemonic.[$os]} -file.open.mnemonic.mac= -file.save.mnemonic=${file.save.mnemonic.[$os]} -file.save.mnemonic.mac= -help.mnemonic=${help.mnemonic.[$os]} -help.mnemonic.mac= -view.mnemonic=${view.mnemonic.[$os]} -view.mnemonic.mac= -file.newWindow.mnemonic.default= -file.saveAs.mnemonic.default= -file.print.mnemonic.default= -edit.undo.mnemonic.default= -edit.redo.mnemonic.default= -edit.cut.mnemonic.default= -edit.copy.mnemonic.default= -edit.paste.mnemonic.default= -edit.delete.mnemonic.default= -edit.duplicate.mnemonic.default= -edit.selectAll.mnemonic.default= -window.maximize.mnemonic.default= -window.minimize.mnemonic.default= -file.export.mnemonic.default= -file.openRecent.mnemonic.default= -window.focus.mnemonic.default= -application.exit.doYouWantToSave.message=Do you want to save changes to the document "{0}" before exiting? -application.exit.doYouWantToSave.details=If you don't save, your changes will be lost. -application.exit.doYouWantToReview.message=You have {0} documents with unsaved changes. Do you want to review these changes before quitting? -application.exit.doYouWantToReview.details=If you don't review your documents, all your changes will be lost. -application.exit.saveOption=Save... -application.exit.dontSaveOption=Don't Save -application.exit.cancelOption=Cancel -application.exit.reviewChangesOption=Review Changes... -application.exit.discardChangesOption=Discard Changes -file.load.fileDoesNotExist.message=The file "{0}" does not exist. -window.arrangeVertical.mnemonic.default= -window.arrangeHorizontal.mnemonic.default= -window.arrangeCascade.mnemonic.default= -file.clear.text=Clear -file.clear.toolTipText=Clear -file.clear.accelerator= -file.clear.mnemonic=${file.clear.mnemonic.[$os]} -file.clear.mnemonic.default= -file.clear.smallIcon= -file.clear.largeIcon= -accelerator.meta=${accelerator.meta.[$os]} -accelerator.meta.default=Meta- -accelerator.meta.win=Windows- -accelerator.meta.mac=\u2318 -accelerator.shift=${accelerator.shift.[$os]} -accelerator.shift.default=Shift- -accelerator.shift.mac=\u21e7 -accelerator.ctrl=${accelerator.ctrl.[$os]} -accelerator.ctrl.default=Ctrl- -accelerator.control=${accelerator.ctrl.[$os]} -accelerator.alt=${accelerator.alt.[$os]} -accelerator.alt.default=Alt- -accelerator.alt.mac=\u2387 -accelerator.altGraph=${accelerator.altGraph.[$os]} -accelerator.altGraph.default=AltGraph- -file.load.toolTipText=Load File (${file.load.accelerator,accelerator}) -file.load.mnemonic=${file.load.mnemonic.[$os]} -file.load.mnemonic.default=O -file.load.mnemonic.mac= -file.loadRecent.mnemonic.default= -file.newWindow.accelerator.default=ctrl N -file.newWindow.accelerator.mac=meta N -edit.find.accelerator=${edit.find.accelerator.[$os]} -edit.find.accelerator.default=ctrl F -edit.find.accelerator.mac=meta F -edit.find.mnemonic=${edit.find.mnemonic.[$os]} -edit.find.mnemonic.default=F -edit.find.mnemonic.mac= -file.saveAs.couldntSaveIntoOpenFile.message=Couldn''t save to the file "{0}" because it is open in another window. +window.text=Window + +imageDir=/org/jhotdraw/app/action/images \ No newline at end of file diff --git a/jhotdraw-core/jhotdraw-core.iml b/jhotdraw-core/jhotdraw-core.iml index 47955ec54..a0832be0a 100644 --- a/jhotdraw-core/jhotdraw-core.iml +++ b/jhotdraw-core/jhotdraw-core.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-core/pom.xml b/jhotdraw-core/pom.xml index 7c276da85..151310118 100644 --- a/jhotdraw-core/pom.xml +++ b/jhotdraw-core/pom.xml @@ -35,10 +35,28 @@ 6.8.21 test - - ${project.groupId} - jhotdraw-actions - ${project.version} - - + + ${project.groupId} + jhotdraw-actions + ${project.version} + + + dk.sdu.cbse + featuretracerlite + 1.1-SNAPSHOT + compile + + + junit + junit + 4.13.2 + test + + + org.mockito + mockito-core + 4.11.0 + test + + \ No newline at end of file diff --git a/jhotdraw-core/src/main/java/org/jhotdraw/draw/tool/SelectionTool.java b/jhotdraw-core/src/main/java/org/jhotdraw/draw/tool/SelectionTool.java index 50f6c47e0..3a669ed47 100644 --- a/jhotdraw-core/src/main/java/org/jhotdraw/draw/tool/SelectionTool.java +++ b/jhotdraw-core/src/main/java/org/jhotdraw/draw/tool/SelectionTool.java @@ -7,10 +7,12 @@ */ package org.jhotdraw.draw.tool; +import dk.sdu.mmmi.featuretracer.lib.FeatureEntryPoint; import org.jhotdraw.draw.figure.Figure; import java.awt.*; import java.awt.event.*; import java.awt.geom.Point2D; +import java.util.Collections; import java.util.HashSet; import org.jhotdraw.draw.*; import org.jhotdraw.draw.event.ToolAdapter; @@ -118,6 +120,7 @@ public void boundsInvalidated(ToolEvent e) { /** * Creates a new instance. */ + @FeatureEntryPoint(value = "SelectionTool") public SelectionTool() { tracker = getSelectAreaTracker(); trackerHandler = new TrackerHandler(); @@ -146,12 +149,14 @@ public boolean isSelectBehindEnabled() { return isSelectBehindEnabled; } + @FeatureEntryPoint(value = "SelectionTool") @Override public void activate(DrawingEditor editor) { super.activate(editor); tracker.activate(editor); } + @FeatureEntryPoint(value = "SelectionTool") @Override public void deactivate(DrawingEditor editor) { super.deactivate(editor); @@ -160,136 +165,301 @@ public void deactivate(DrawingEditor editor) { @Override public void keyPressed(KeyEvent e) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { tracker.keyPressed(e); } } @Override public void keyReleased(KeyEvent evt) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { tracker.keyReleased(evt); } } @Override public void keyTyped(KeyEvent evt) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { tracker.keyTyped(evt); } } @Override public void mouseClicked(MouseEvent evt) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { tracker.mouseClicked(evt); } } + @FeatureEntryPoint(value = "SelectionTool") @Override public void mouseDragged(MouseEvent evt) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { tracker.mouseDragged(evt); } } + @FeatureEntryPoint(value = "SelectionTool") @Override public void mouseEntered(MouseEvent evt) { super.mouseEntered(evt); tracker.mouseEntered(evt); } + @FeatureEntryPoint(value = "SelectionTool") @Override public void mouseExited(MouseEvent evt) { super.mouseExited(evt); tracker.mouseExited(evt); } + @FeatureEntryPoint(value = "SelectionTool") @Override public void mouseMoved(MouseEvent evt) { tracker.mouseMoved(evt); } + @FeatureEntryPoint(value = "SelectionTool") @Override public void mouseReleased(MouseEvent evt) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { tracker.mouseReleased(evt); } } + @FeatureEntryPoint(value = "SelectionTool") @Override public void draw(Graphics2D g) { tracker.draw(g); } + /** + * Checks whether the associated drawing {@code view} is not null and is currently enabled. + * + * @return {@code true} if the drawing view is not null and is enabled; otherwise, {@code false}. + * + * @author Paweł Kasztura + */ + protected boolean isViewNotNullAndEnabled() { + return getView() != null && getView().isEnabled(); + } + + /** + * Checks whether the given {@code figure} is not null and is selectable. + * + * @param figure Considered {@code Figure} + * + * @return {@code true} if the figure is not null and is selectable; otherwise, {@code false}. + * + * @author Paweł Kasztura + */ + protected boolean isFigureNotNullAndSelectable(Figure figure) { + return figure != null && figure.isSelectable(); + } + + /** + * Checks whether the given {@code figure} is not null and is not selectable. + * + * @param figure Considered {@code Figure} + * + * @return {@code true} if the figure is not null and is not selectable; otherwise, {@code false}. + * + * @author Paweł Kasztura + */ + protected boolean isFigureNotNullAndNotSelectable(Figure figure) { + return figure != null && !figure.isSelectable(); + } + + /** + * Invoked when a mouse button is pressed within the context of the {@code SelectionTool}. + * This method handles the mouse press event for selection operations and delegates + * processing to the appropriate tools and handles within the associated drawing {@code view}. + * + * @param evt The {@code MouseEvent} representing the mouse press event. + * + * @author Paweł Kasztura + */ + @FeatureEntryPoint(value = "SelectionTool") @Override public void mousePressed(MouseEvent evt) { - if (getView() != null && getView().isEnabled()) { + if (isViewNotNullAndEnabled()) { super.mousePressed(evt); DrawingView view = getView(); Handle handle = view.findHandle(anchor); - Tool newTracker = null; - if (handle != null) { - newTracker = getHandleTracker(handle); - } else { - Figure figure; - Drawing drawing = view.getDrawing(); - Point2D.Double p = view.viewToDrawing(anchor); - if (isSelectBehindEnabled() - && (evt.getModifiersEx() - & (InputEvent.ALT_DOWN_MASK | InputEvent.CTRL_DOWN_MASK)) != 0) { - // Select a figure behind the current selection - figure = view.findFigure(anchor); - while (figure != null && !figure.isSelectable()) { - figure = drawing.findFigureBehind(p, figure); - } - HashSet
ignoredFigures = new HashSet<>(view.getSelectedFigures()); - ignoredFigures.add(figure); - Figure figureBehind = view.getDrawing().findFigureBehind( - view.viewToDrawing(anchor), ignoredFigures); - if (figureBehind != null) { - figure = figureBehind; - } - } else { - // Note: The search sequence used here, must be - // consistent with the search sequence used by the - // DefaultHandleTracker, the DefaultSelectAreaTracker and DelegationSelectionTool. - // If possible, continue to work with the current selection - figure = null; - if (isSelectBehindEnabled()) { - for (Figure f : view.getSelectedFigures()) { - if (f.contains(p)) { - figure = f; - break; - } - } - } - // If the point is not contained in the current selection, - // search for a figure in the drawing. - if (figure == null) { - figure = view.findFigure(anchor); - while (figure != null && !figure.isSelectable()) { - figure = drawing.findFigureBehind(p, figure); - } - } - } - if (figure != null && figure.isSelectable()) { - newTracker = getDragTracker(figure); - } else { - if (!evt.isShiftDown()) { - view.clearSelection(); - view.setHandleDetailLevel(0); - } - newTracker = getSelectAreaTracker(); - } + + Tool newTracker = createNewTracker(handle, evt, view); + + setTracker(newTracker); + tracker.mousePressed(evt); + } + } + + /** + * Creates a new tracker tool based on the provided handle, mouse event, and drawing {@code view}. This + * method determines the appropriate tracker based on the handle, figure, and user interaction, + * ensuring dynamic tool selection within the context of the {@code SelectionTool}. It also handles the event of + * not holding the {@code shift} key to clear the selection + * + * @param handle The handle associated with the mouse event, or null if none. + * @param evt The {@code MouseEvent} representing the user's interaction. + * @param view The {@code DrawingView} where the interaction occurs. + * + * @return A {@code Tool} instance representing the newly created tracker for the given context. + * + * @author Paweł Kasztura + */ + @FeatureEntryPoint(value = "SelectionTool") + protected Tool createNewTracker(Handle handle, MouseEvent evt, DrawingView view) { + Point2D.Double viewCoordinates = view.viewToDrawing(new Point()); + + if (handle != null) { + return getHandleTracker(handle); + } + + Figure figure = getFigure(view, viewCoordinates, evt); + + if (isFigureNotNullAndSelectable(figure)) { + return getDragTracker(figure); + } + + if (!evt.isShiftDown()) { + view.clearSelection(); + view.setHandleDetailLevel(0); + } + + return getSelectAreaTracker(); + } + + /** + * Returns the {@code Figure} under the specified {@code view} coordinates within the given {@code DrawingView}. + * The method considers the option to select figures behind others when enabled and conditions for + * selecting behind are met. If the option is disabled or conditions are not met, it determines the + * {@code figure} in the current selection or the entire {@code drawing} at the specified {@code view} coordinates. + * + * @param view The {@code DrawingView} where the interaction occurs. + * @param viewCoordinates The {@code view} coordinates representing the point of interest. + * @param evt The {@code MouseEvent} triggering the {@code figure} retrieval. + * + * @return The {@code Figure} under the specified coordinates, considering selection options. + * + * @author Paweł Kasztura + */ + @FeatureEntryPoint(value = "SelectionTool") + protected Figure getFigure(DrawingView view, Point2D.Double viewCoordinates, MouseEvent evt) { + Drawing drawing = view.getDrawing(); + + if (shouldSelectBehind(evt)) { + return selectFigureBehind(view, viewCoordinates); + } + + return getFigureFromCurrentSelectionOrDrawing(view, viewCoordinates, drawing); + } + + /** + * Determines whether the selection behind other figures is appropriate based on the + * current state of the mouse event. Selection behind is enabled + * if the {@code CTRL} key is pressed during the mouse event. + * + * @param evt The {@code MouseEvent} to evaluate for key modifier and selection behind conditions. + * + * @return {@code true} if selection behind is enabled and the {@code CTRL} key is pressed; + * otherwise, {@code false}. + * + * @author Paweł Kasztura + */ + protected boolean shouldSelectBehind(MouseEvent evt) { + return isSelectBehindEnabled() && evt.isControlDown(); + } + + /** + * Selects and returns the {@code figure} behind the specified anchor point within the given {@code DrawingView}. + * The method iteratively finds the nearest selectable {@code figure} behind the anchor point, excluding + * any figures already selected. If no {@code figure} is found behind, it considers the entire drawing. + * + * @param view The {@code DrawingView} where the interaction occurs. + * @param viewCoordinates The {@code view} coordinates representing the anchor point. + * + * @return The {@code Figure} behind the anchor point, excluding selected figures, or the nearest + * selectable {@code figure} in the entire drawing. {@code Null} if no such {@code figure} is found. + * + * @author Paweł Kasztura + */ + @FeatureEntryPoint(value = "SelectionTool") + protected Figure selectFigureBehind(DrawingView view, Point2D.Double viewCoordinates) { + Figure figure = view.findFigure(anchor); + + while (isFigureNotNullAndNotSelectable(figure)) { + figure = view.getDrawing().findFigureBehind(viewCoordinates, figure); + } + + HashSet
ignoredFigures = new HashSet<>(view.getSelectedFigures()); + + ignoredFigures.add(figure); + + Figure figureBehind = view.getDrawing().findFigureBehind(view.viewToDrawing(anchor), ignoredFigures); + + return (figureBehind != null) ? figureBehind : figure; + } + + /** + * Determines and returns the {@code Figure} under the specified {@code view} coordinates within the given {@code DrawingView}, + * considering the current selection first. If no {@code figure} is found in the current selection, the method + * iteratively finds the nearest selectable {@code figure} behind the anchor point in the entire drawing. + * + * @param view The {@code DrawingView} where the interaction occurs. + * @param viewCoordinates The {@code view} coordinates representing the point of interest. + * @param drawing The {@code Drawing} containing the figures. + * + * @return The {@code Figure} under the specified coordinates within the current selection, or the nearest + * selectable {@code figure} in the entire drawing. {@code Null} if no such {@code figure} is found. + * + * @author Paweł Kasztura + */ + @FeatureEntryPoint(value = "SelectionTool") + protected Figure getFigureFromCurrentSelectionOrDrawing(DrawingView view, Point2D.Double viewCoordinates, Drawing drawing) { + Figure figure = findFigureInCurrentSelection(view, viewCoordinates); + + if (figure == null) { + figure = view.findFigure(anchor); + + while (isFigureNotNullAndNotSelectable(figure)) { + figure = drawing.findFigureBehind(viewCoordinates, figure); } - if (newTracker != null) { - setTracker(newTracker); + } + + return figure; + } + + /** + * Finds and returns the {@code Figure} within the current selection that contains the specified {@code view} coordinates. + * If selection behind is enabled, the method iterates through the selected figures, checking if each + * figure contains the given coordinates and returns the first match. + * + * @param view The {@code DrawingView} containing the current selection. + * @param viewCoordinates The {@code view} coordinates representing the point of interest. + * + * @return The {@code Figure} within the current selection containing the specified coordinates, or {@code null} if not found. + * + * @author Paweł Kasztura + */ + @FeatureEntryPoint(value = "SelectionTool") + protected Figure findFigureInCurrentSelection(DrawingView view, Point2D.Double viewCoordinates) { + if (isSelectBehindEnabled()) { + for (Figure f : view.getSelectedFigures()) { + if (f.contains(viewCoordinates)) { + return f; + } } - tracker.mousePressed(evt); } + return null; } + /** + * Sets the active {@code tool} for tracking user interactions. + * + * @param newTracker The new {@code Tool} instance to be set as the active tracker. + */ + @FeatureEntryPoint(value = "SelectionTool") protected void setTracker(Tool newTracker) { if (tracker != null) { tracker.deactivate(getEditor()); @@ -306,11 +476,20 @@ protected void setTracker(Tool newTracker) { * Method to get a {@code HandleTracker} which handles user interaction * for the specified handle. */ + @FeatureEntryPoint(value = "SelectionTool") protected HandleTracker getHandleTracker(Handle handle) { if (handleTracker == null) { handleTracker = new DefaultHandleTracker(); } - handleTracker.setHandles(handle, getView().getCompatibleHandles(handle)); + + DrawingView view = getView(); + if (view != null) { + handleTracker.setHandles(handle, view.getCompatibleHandles(handle)); + } else { + // Handle the case where getView() returns null (provide a default behavior or throw an exception) + handleTracker.setHandles(handle, Collections.emptyList()); + } + return handleTracker; } @@ -330,6 +509,7 @@ protected DragTracker getDragTracker(Figure f) { * Method to get a {@code SelectAreaTracker} which handles user interaction * for selecting an area on the drawing. */ + @FeatureEntryPoint(value = "SelectionTool") protected SelectAreaTracker getSelectAreaTracker() { if (selectAreaTracker == null) { selectAreaTracker = new DefaultSelectAreaTracker(); diff --git a/jhotdraw-core/src/main/resources/org/jhotdraw/draw/Labels.properties b/jhotdraw-core/src/main/resources/org/jhotdraw/draw/Labels.properties index 21b22b608..ed9147a84 100644 --- a/jhotdraw-core/src/main/resources/org/jhotdraw/draw/Labels.properties +++ b/jhotdraw-core/src/main/resources/org/jhotdraw/draw/Labels.properties @@ -1,54 +1,34 @@ actions.largeIcon=${imageDir}/actions.png actions.text=Actions actions.toolTipText=Actions -edit.align.text=Align -edit.alignEast.accelerator= -edit.alignEast.mnemonic= -edit.alignEast.text= -edit.alignEast.largeIcon=${imageDir}/alignEast.png -edit.alignEast.toolTipText=Align Right -edit.alignHorizontal.accelerator= -edit.alignHorizontal.mnemonic= -edit.alignHorizontal.text= -edit.alignHorizontal.largeIcon=${imageDir}/alignHorizontal.png -edit.alignHorizontal.toolTipText=Align Horizontal -window.alignmentToolBar.title=Align -edit.alignNorth.accelerator= -edit.alignNorth.mnemonic= -edit.alignNorth.text= -edit.alignNorth.largeIcon=${imageDir}/alignNorth.png -edit.alignNorth.toolTipText=Align Top -edit.alignSouth.accelerator= -edit.alignSouth.mnemonic= -edit.alignSouth.text= -edit.alignSouth.largeIcon=${imageDir}/alignSouth.png -edit.alignSouth.toolTipText=Align Bottom -edit.alignVertical.accelerator= -edit.alignVertical.mnemonic= -edit.alignVertical.text= -edit.alignVertical.largeIcon=${imageDir}/alignVertical.png -edit.alignVertical.toolTipText=Align Vertical -edit.alignWest.accelerator= -edit.alignWest.mnemonic= -edit.alignWest.text= -edit.alignWest.largeIcon=${imageDir}/alignWest.png -edit.alignWest.toolTipText=Align Left -attribute.opacity.text=Opacity -attribute.opacity.toolTipText=Opacity -attribute.backgroundColor.toolTipText=Background Color -attribute.backgroundColor.text=Background: attribute.backgroundColor.color=Color: +attribute.backgroundColor.text=Background: +attribute.backgroundColor.toolTipText=Background Color attribute.backgroundColor.transparency=Transparency attribute.backgroundColor.transparent=Transparent attribute.backgroundColor.userDefined=User Defined attribute.backgroundColor.white=White attribute.backgroundColor=Background: +attribute.canvasFillColor.largeIcon=${imageDir}/attributeFillColor.png +attribute.canvasFillColor.text=Canvas Fill Color +attribute.canvasFillOpacity.text=Canvas Opacity +attribute.canvasHeight.text=Canvas Height +attribute.canvasWidth.text=Canvas Width +attribute.color.colorChooser.toolTipText=Open Color Chooser +attribute.color.grayComponents.toolTipText=Brightness: {0} % +attribute.color.hsbComponents.toolTipText=Hue: {0}\u00B0
Saturation: {1} %
Brightness: {2} %, attribute.color.noColor.toolTipText=No Color +attribute.color.rgbComponents.toolTipText={0}, {1}, {2} +attribute.color.rgbHexComponents.toolTipText=#{0} +attribute.color.rgbPercentageComponents.toolTipText={0} %, {1} %, {2} %, +attribute.color.text=Color +attribute.endDecoration.text=End of Line Decoration attribute.fillColor.largeIcon=${imageDir}/attributeFillColor.png -attribute.fillColor.toolTipText=Fill Color attribute.fillColor.text=Fill Color +attribute.fillColor.toolTipText=Fill Color attribute.font.largeIcon=${imageDir}/attributeFont.png attribute.font.toolTipText=Font +attribute.fontFace.text=Font Face attribute.fontSize.text=Font Size attribute.fontStyle.bold.largeIcon=${imageDir}/attributeFontBold.png attribute.fontStyle.bold.text=Bold @@ -61,16 +41,23 @@ attribute.fontStyle.underline.largeIcon=${imageDir}/attributeFontUnderline.png attribute.fontStyle.underline.text=Underline attribute.fontStyle.underline.toolTipText=Underline attribute.fontStyle.underline=Underline +attribute.opacity.text=Opacity +attribute.opacity.toolTipText=Opacity +attribute.pathClosed.text=Path closed attribute.roundRectRadius=Rectangle rounding +attribute.startDecoration.text=Start of Line Decoration attribute.strokeCap.butt=Butt attribute.strokeCap.largeIcon=${imageDir}/attributeStrokeCap.png attribute.strokeCap.round=Round attribute.strokeCap.square=Square attribute.strokeCap.toolTipText=Line Caps attribute.strokeColor.largeIcon=${imageDir}/attributeStrokeColor.png +attribute.strokeColor.text=Line Color attribute.strokeColor.toolTipText=Line Color attribute.strokeDashes.largeIcon=${imageDir}/attributeStrokeDashes.png +attribute.strokeDashes.text=Stroke Dashes attribute.strokeDashes.toolTipText=Line Dashes +attribute.strokeDashPhase.text=Stroke Dash Phase attribute.strokeDecoration.largeIcon=${imageDir}/attributeStrokeDecoration.png attribute.strokeDecoration.toolTipText=Arrow Tips attribute.strokeJoin.bevel=Bevel @@ -81,56 +68,87 @@ attribute.strokeJoin.toolTipText=Stroke Joint attribute.strokePlacement.center=Center attribute.strokePlacement.centerFilled=Center Filled attribute.strokePlacement.centerUnfilled=Center Unfilled -attribute.strokePlacement.largeIcon=${imageDir}/attributeStrokePlacement.png attribute.strokePlacement.inside=Inside attribute.strokePlacement.insideFilled=Inside Filled attribute.strokePlacement.insideUnfilled=Inside unfilled +attribute.strokePlacement.largeIcon=${imageDir}/attributeStrokePlacement.png attribute.strokePlacement.outside=Outside attribute.strokePlacement.outsideFilled=Outside Filled attribute.strokePlacement.outsideUnfilled=Outside Unfilled attribute.strokePlacement.toolTipText=Stroke Placement attribute.strokeType.basic=Basic Stroke attribute.strokeType.double=Double Stroke -attribute.strokeType.toolTipText=Stroke Type attribute.strokeType.largeIcon=${imageDir}/attributeStrokeType.png +attribute.strokeType.text=Stroke Type +attribute.strokeType.toolTipText=Stroke Type attribute.strokeWidth.largeIcon=${imageDir}/attributeStrokeWidth.png +attribute.strokeWidth.text=Stroke Width attribute.strokeWidth.toolTipText=Stroke Width attribute.strokeWidth=Stroke Width +attribute.text.text=Text attribute.text=Attribute attribute.textColor.largeIcon=${imageDir}/attributeTextColor.png attribute.textColor.toolTipText=Text Color +attribute.transform.text=Transformation +attribute.unclosedPathFilled=Unclosed path filled +attribute.windingRule.text=Winding Rule +canvasSettings.text=Canvas Settings +color.text=Color: +ConnectionFigure.undoConnect.text=Connect +edit.align.text=Align +edit.alignEast.accelerator= +edit.alignEast.largeIcon=${imageDir}/alignEast.png +edit.alignEast.mnemonic= +edit.alignEast.text= +edit.alignEast.toolTipText=Align Right +edit.alignHorizontal.accelerator= +edit.alignHorizontal.largeIcon=${imageDir}/alignHorizontal.png +edit.alignHorizontal.mnemonic= +edit.alignHorizontal.text= +edit.alignHorizontal.toolTipText=Align Horizontal +edit.alignNorth.accelerator= +edit.alignNorth.largeIcon=${imageDir}/alignNorth.png +edit.alignNorth.mnemonic= +edit.alignNorth.text= +edit.alignNorth.toolTipText=Align Top +edit.alignSouth.accelerator= +edit.alignSouth.largeIcon=${imageDir}/alignSouth.png +edit.alignSouth.mnemonic= +edit.alignSouth.text= +edit.alignSouth.toolTipText=Align Bottom +edit.alignVertical.accelerator= +edit.alignVertical.largeIcon=${imageDir}/alignVertical.png +edit.alignVertical.mnemonic= +edit.alignVertical.text= +edit.alignVertical.toolTipText=Align Vertical +edit.alignWest.accelerator= +edit.alignWest.largeIcon=${imageDir}/alignWest.png +edit.alignWest.mnemonic= +edit.alignWest.text= +edit.alignWest.toolTipText=Align Left edit.applyAttributes.accelerator= -edit.applyAttributes.mnemonic= +edit.applyAttributes.icon=${imageDir}/attributesApply.png edit.applyAttributes.largeIcon=${imageDir}/attributesApply.png +edit.applyAttributes.mnemonic= +edit.applyAttributes.smallIcon=${imageDir}/attributesApply.png edit.applyAttributes.text=Apply attributes edit.applyAttributes.toolTipText=Apply attributes -edit.pickAttributes.accelerator= -edit.pickAttributes.mnemonic= -edit.pickAttributes.largeIcon=${imageDir}/attributesPick.png -edit.pickAttributes.text=Pick attributes -edit.pickAttributes.toolTipText=Pick attributes -window.attributesToolBar.title=Attributes -handle.bezierControlPoint.cubicColinear.value=Colinear Control Point -handle.bezierControlPoint.cubicUnconstrained.value=Unconstrained Control Point edit.bezierNode.changeType.text=Change Point Type -handle.bezierNode.cubic.value=Cubic Curve Point -handle.bezierNode.linear.value=Edge Point edit.bezierNode.movePoint.text=Move Point -handle.bezierNode.quadratic.value=Quadratic Curve Point -handle.bezierNode.toolTipText={0}
${handle.bezierControlPoint.changeType.text} edit.bezierPath.joinSegments.text=Join Path Segments edit.bezierPath.splitSegment.text=Split Path Segment -handle.bezierControlPoint.quadratic.value=Control Point edit.bringToFront.accelerator= -edit.bringToFront.mnemonic= +edit.bringToFront.icon= edit.bringToFront.largeIcon=${imageDir}/moveToFront.png +edit.bringToFront.mnemonic= +edit.bringToFront.smallIcon= edit.bringToFront.text=Bring to Front edit.bringToFront.toolTipText=Bring to Front -canvasSettings.text=Canvas Settings -color.text=Color: -ConnectionFigure.undoConnect.text=Connect edit.createArrow.largeIcon=${imageDir}/createArrow.png edit.createArrow.toolTipText=Arrow +edit.createConnectionFigure.text=Create Connection +edit.createCurvedConnection.largeIcon=${imageDir}/createCurvedConnection.png +edit.createCurvedConnection.toolTipText=Curved Connection edit.createDiamond.largeIcon=${imageDir}/createDiamond.png edit.createDiamond.toolTipText=Diamond edit.createElbowConnection.largeIcon=${imageDir}/createElbowConnection.png @@ -144,6 +162,7 @@ edit.createLine.largeIcon=${imageDir}/createLine.png edit.createLine.toolTipText=Line edit.createLineConnection.largeIcon=${imageDir}/createLineConnection.png edit.createLineConnection.text=Connection +edit.createLineConnection.toolTipText=Line Connection edit.createPolygon.largeIcon=${imageDir}/createPolygon.png edit.createPolygon.toolTipText=Polygon edit.createRectangle.largeIcon=${imageDir}/createRectangle.png @@ -158,88 +177,129 @@ edit.createTextArea.largeIcon=${imageDir}/createTextArea.png edit.createTextArea.toolTipText=Text Area edit.createTriangle.largeIcon=${imageDir}/createTriangle.png edit.createTriangle.toolTipText=Triangle -window.drawToolBar.title=Draw edit.delete.text=Delete -edit.paste.text=Paste -edit.selectSame.accelerator= -edit.selectSame.largeIcon=${imageDir}/spacerIcon.png -edit.selectSame.mnemonic -edit.selectSame.text=Select Same -edit.selectSame.toolTipText= -file.failedToLoadImage.message=Couldn''t load image from file "{0}". -handle.fontSize.toolTipText=Font Size -imageDir=/org/jhotdraw/draw/action/images -edit.moveEast.largeIcon=${imageDir}/moveEast.png -edit.moveEast.toolTipText=Move Right -edit.moveEast.accelerator= -edit.moveEast.mnemonic= -edit.moveEast.text= -edit.moveNorth.largeIcon=${imageDir}/moveNorth.png -edit.moveNorth.toolTipText=Move Up -edit.moveNorth.accelerator= -edit.moveNorth.mnemonic= -edit.moveNorth.text= -edit.moveSouth.largeIcon=${imageDir}/moveSouth.png -edit.moveSouth.toolTipText=Move Down -edit.moveSouth.accelerator= -edit.moveSouth.mnemonic= -edit.moveSouth.text= -edit.moveWest.largeIcon=${imageDir}/moveWest.png -edit.moveWest.toolTipText=Move Left -edit.moveWest.accelerator= -edit.moveWest.mnemonic= -edit.moveWest.text= -edit.moveConstrainedEast.largeIcon= -edit.moveConstrainedEast.toolTipText=Move Constrained Right +edit.duplicate.text=Duplicate +edit.groupSelection.accelerator= +edit.groupSelection.icon= +edit.groupSelection.largeIcon=${imageDir}/selectionGroup.png +edit.groupSelection.mnemonic= +edit.groupSelection.smallIcon= +edit.groupSelection.text=Group +edit.groupSelection.toolTipText= edit.moveConstrainedEast.accelerator= +edit.moveConstrainedEast.icon= +edit.moveConstrainedEast.largeIcon= edit.moveConstrainedEast.mnemonic= +edit.moveConstrainedEast.smallIcon= edit.moveConstrainedEast.text= -edit.moveConstrainedNorth.largeIcon= -edit.moveConstrainedNorth.toolTipText=Move Constrained Up +edit.moveConstrainedEast.toolTipText=Move Constrained Right edit.moveConstrainedNorth.accelerator= +edit.moveConstrainedNorth.icon= +edit.moveConstrainedNorth.largeIcon= edit.moveConstrainedNorth.mnemonic= +edit.moveConstrainedNorth.smallIcon= edit.moveConstrainedNorth.text= -edit.moveConstrainedSouth.largeIcon= -edit.moveConstrainedSouth.toolTipText=Move Constrained Down +edit.moveConstrainedNorth.toolTipText=Move Constrained Up edit.moveConstrainedSouth.accelerator= +edit.moveConstrainedSouth.icon= +edit.moveConstrainedSouth.largeIcon= edit.moveConstrainedSouth.mnemonic= +edit.moveConstrainedSouth.smallIcon= edit.moveConstrainedSouth.text= -edit.moveConstrainedWest.largeIcon= -edit.moveConstrainedWest.toolTipText=Move Constrained Left +edit.moveConstrainedSouth.toolTipText=Move Constrained Down edit.moveConstrainedWest.accelerator= +edit.moveConstrainedWest.icon= +edit.moveConstrainedWest.largeIcon= edit.moveConstrainedWest.mnemonic= +edit.moveConstrainedWest.smallIcon= edit.moveConstrainedWest.text= -handle.resize.toolTipText=Resize -handle.rotate.toolTipText=Rotate -handle.roundRectangleRadius.toolTipText=Round-Rectangle Radius -edit.groupSelection.accelerator= -edit.groupSelection.mnemonic= -edit.groupSelection.largeIcon=${imageDir}/selectionGroup.png -edit.groupSelection.text=Group -edit.groupSelection.toolTipText= -selectionTool.largeIcon=${imageDir}/selectionTool.png -selectionTool.toolTipText=Selection Tool -edit.ungroupSelection.accelerator= -edit.ungroupSelection.mnemonic= -edit.ungroupSelection.largeIcon=${imageDir}/selectionUngroup.png -edit.ungroupSelection.text=Ungroup -edit.ungroupSelection.toolTipText= +edit.moveConstrainedWest.toolTipText=Move Constrained Left +edit.moveEast.accelerator= +edit.moveEast.icon=${imageDir}/moveEast.png +edit.moveEast.largeIcon=${imageDir}/moveEast.png +edit.moveEast.mnemonic= +edit.moveEast.smallIcon=${imageDir}/moveEast.png +edit.moveEast.text= +edit.moveEast.toolTipText=Move Right +edit.moveNorth.accelerator= +edit.moveNorth.icon=${imageDir}/moveNorth.png +edit.moveNorth.largeIcon=${imageDir}/moveNorth.png +edit.moveNorth.mnemonic= +edit.moveNorth.smallIcon=${imageDir}/moveNorth.png +edit.moveNorth.text= +edit.moveNorth.toolTipText=Move Up +edit.moveSouth.accelerator= +edit.moveSouth.icon=${imageDir}/moveSouth.png +edit.moveSouth.largeIcon=${imageDir}/moveSouth.png +edit.moveSouth.mnemonic= +edit.moveSouth.smallIcon=${imageDir}/moveSouth.png +edit.moveSouth.text= +edit.moveSouth.toolTipText=Move Down +edit.moveWest.accelerator= +edit.moveWest.icon=${imageDir}/moveWest.png +edit.moveWest.largeIcon=${imageDir}/moveWest.png +edit.moveWest.mnemonic= +edit.moveWest.smallIcon=${imageDir}/moveWest.png +edit.moveWest.text= +edit.moveWest.toolTipText=Move Left +edit.paste.text=Paste +edit.pickAttributes.accelerator= +edit.pickAttributes.icon=${imageDir}/attributesPick.png +edit.pickAttributes.largeIcon=${imageDir}/attributesPick.png +edit.pickAttributes.mnemonic= +edit.pickAttributes.smallIcon=${imageDir}/attributesPick.png +edit.pickAttributes.text=Pick attributes +edit.pickAttributes.toolTipText=Pick attributes +edit.selectSame.accelerator= +edit.selectSame.icon= +edit.selectSame.largeIcon=${imageDir}/spacerIcon.png +edit.selectSame.mnemonic +edit.selectSame.smallIcon= +edit.selectSame.text=Select Same +edit.selectSame.toolTipText= edit.sendToBack.accelerator= -edit.sendToBack.mnemonic= +edit.sendToBack.icon= edit.sendToBack.largeIcon=${imageDir}/moveToBack.png +edit.sendToBack.mnemonic= +edit.sendToBack.smallIcon= edit.sendToBack.text=Send to Back edit.sendToBack.toolTipText=Send to Back -TextFigure.defaultText=Text -handle.textOverflow.toolTipText=Text Overflow edit.transform.text=Transformation +edit.ungroupSelection.accelerator= +edit.ungroupSelection.icon= +edit.ungroupSelection.largeIcon=${imageDir}/selectionUngroup.png +edit.ungroupSelection.mnemonic= +edit.ungroupSelection.smallIcon= +edit.ungroupSelection.text=Ungroup +edit.ungroupSelection.toolTipText= +file.failedToLoadImage.message=Couldn''t load image from file "{0}". +handle.bezierControlPoint.changeType.text.default=Ctrl+Click changes point type. +handle.bezierControlPoint.changeType.text.mac=Alt+Click changes point type. +handle.bezierControlPoint.changeType.text=${handle.bezierControlPoint.changeType.text.[$os]} +handle.bezierControlPoint.cubicColinear.value=Colinear Control Point +handle.bezierControlPoint.cubicUnconstrained.value=Unconstrained Control Point +handle.bezierControlPoint.quadratic.toolTipText=Control Point +handle.bezierControlPoint.quadratic.value=Control Point +handle.bezierControlPoint.toolTipText={0}
${handle.bezierControlPoint.changeType.text} +handle.bezierNode.cubic.value=Cubic Curve Point +handle.bezierNode.linear.value=Edge Point +handle.bezierNode.quadratic.value=Quadratic Curve Point +handle.bezierNode.toolTipText={0}
${handle.bezierControlPoint.changeType.text} +handle.fontSize.toolTipText=Font Size +handle.resize.toolTipText=Resize +handle.rotate.toolTipText=Rotate +handle.roundRectangleRadius.toolTipText=Round-Rectangle Radius +handle.textOverflow.toolTipText=Text Overflow handle.transform.toolTipText=Scale +selectionTool.largeIcon=${imageDir}/selectionTool.png +selectionTool.toolTipText=Selection Tool +TextFigure.defaultText=Text view.editCanvas.accelerator= view.editCanvas.largeIcon= view.editCanvas.mnemonic= view.editCanvas.text=Edit Canvas view.editCanvas.toolTipText= view.editGrid.accelerator= -window.editCanvas.title=Edit Canvas view.editGrid.largeIcon= view.editGrid.mnemonic= view.editGrid.text=Edit Grid @@ -251,8 +311,10 @@ view.grid.text=Grid view.grid.theta.text=Angle view.grid.width.text=Width view.increaseHandleDetailLevel.accelerator= -view.increaseHandleDetailLevel.mnemonic= +view.increaseHandleDetailLevel.icon= view.increaseHandleDetailLevel.largeIcon= +view.increaseHandleDetailLevel.mnemonic= +view.increaseHandleDetailLevel.smallIcon= view.increaseHandleDetailLevel.text=Increase Handle Detail Level view.increaseHandleDetailLevel.toolTipText= view.largeIcon= @@ -265,59 +327,27 @@ view.toggleGrid.placard.largeIcon=${imageDir}/alignGridSmall.png view.toggleGrid.placard.toolTipText=Toggle Grid view.toggleGrid.text=Toggle Grid view.toggleGrid.toolTipText=Toggle Grid -view.zoomFactor.mnemonic= +view.zoomFactor.icon= view.zoomFactor.largeIcon= +view.zoomFactor.mnemonic= +view.zoomFactor.smallIcon= view.zoomFactor.text=Zoom view.zoomFactor.toolTipText= -window.alignmentToolBar.title=Align -window.attributesToolBar.title=Attributes -window.drawToolBar.title=Draw -window.standardToolBar.title=Standard windingRule.evenOdd=Even Odd windingRule.nonZero=Non Zero windingRule.text=Winding Rule +window.alignmentToolBar.title=Align +window.attributesToolBar.title=Attributes window.close.accelerator= window.close.largeIcon= window.close.mnemonic=c window.close.text=Close +window.drawToolBar.title=Draw +window.editCanvas.title=Edit Canvas window.new.accelerator= window.new.largeIcon= window.new.mnemonic= window.new.text=New Window -attribute.opacity.toolTipText=Opacity -handle.bezierControlPoint.toolTipText={0}
${handle.bezierControlPoint.changeType.text} -handle.bezierControlPoint.changeType.text.default=Ctrl+Click changes point type. -handle.bezierControlPoint.changeType.text.mac=Alt+Click changes point type. -handle.bezierControlPoint.changeType.text=${handle.bezierControlPoint.changeType.text.[$os]} -handle.bezierControlPoint.quadratic.toolTipText=Control Point -edit.createLineConnection.toolTipText=Line Connection -edit.createConnectionFigure.text=Create Connection -attribute.canvasFillOpacity.text=Canvas Opacity -attribute.strokeWidth.text=Stroke Width -attribute.canvasFillColor.largeIcon=${imageDir}/attributeFillColor.png -attribute.text.text=Text -attribute.fontFace.text=Font Face -attribute.transform.text=Transformation -attribute.strokeDashes.text=Stroke Dashes -edit.duplicate.text=Duplicate -attribute.color.colorChooser.toolTipText=Open Color Chooser -attribute.windingRule.text=Winding Rule -attribute.color.text=Color -edit.createCurvedConnection.largeIcon=${imageDir}/createCurvedConnection.png -edit.createCurvedConnection.toolTipText=Curved Connection -attribute.canvasWidth.text=Canvas Width -attribute.canvasHeight.text=Canvas Height -attribute.unclosedPathFilled=Unclosed path filled -attribute.pathClosed.text=Path closed -attribute.startDecoration.text=Start of Line Decoration -attribute.endDecoration.text=End of Line Decoration -attribute.strokeType.text=Stroke Type +window.standardToolBar.title=Standard -attribute.color.hsbComponents.toolTipText=Hue: {0}\u00B0
Saturation: {1} %
Brightness: {2} %, -attribute.color.grayComponents.toolTipText=Brightness: {0} % -attribute.strokeColor.text=Line Color -attribute.color.rgbComponents.toolTipText={0}, {1}, {2} -attribute.color.rgbHexComponents.toolTipText=#{0} -attribute.color.rgbPercentageComponents.toolTipText={0} %, {1} %, {2} %, -attribute.canvasFillColor.text=Canvas Fill Color -attribute.strokeDashPhase.text=Stroke Dash Phase +imageDir=/org/jhotdraw/draw/action/images \ No newline at end of file diff --git a/jhotdraw-core/src/main/resources/org/jhotdraw/undo/Labels.properties b/jhotdraw-core/src/main/resources/org/jhotdraw/undo/Labels.properties index 449bf5175..129b4a664 100644 --- a/jhotdraw-core/src/main/resources/org/jhotdraw/undo/Labels.properties +++ b/jhotdraw-core/src/main/resources/org/jhotdraw/undo/Labels.properties @@ -2,15 +2,19 @@ edit.redo.accelerator.default=ctrl Y edit.redo.accelerator.mac=meta shift Z edit.redo.accelerator=${edit.redo.accelerator.[$os]} +edit.redo.icon= edit.redo.largeIcon=${image.dir}/editRedo.png edit.redo.mnemonic= +edit.redo.smallIcon= edit.redo.text=Redo edit.redo.toolTipText= edit.undo.accelerator.default=ctrl Z edit.undo.accelerator.mac=meta Z edit.undo.accelerator=${edit.undo.accelerator.[$os]} +edit.undo.icon= edit.undo.largeIcon=${image.dir}/editUndo.png edit.undo.mnemonic= +edit.undo.smallIcon= edit.undo.text=Undo edit.undo.toolTipText= image.dir=/org/jhotdraw/undo/images diff --git a/jhotdraw-core/src/test/java/org/jhotdraw/draw/tool/SelectionToolTest.java b/jhotdraw-core/src/test/java/org/jhotdraw/draw/tool/SelectionToolTest.java new file mode 100644 index 000000000..19fd56ec6 --- /dev/null +++ b/jhotdraw-core/src/test/java/org/jhotdraw/draw/tool/SelectionToolTest.java @@ -0,0 +1,119 @@ +package org.jhotdraw.draw.tool; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.awt.Canvas; +import java.awt.Component; +import java.awt.MouseInfo; +import java.awt.Point; +import java.awt.event.InputEvent; +import java.awt.event.MouseEvent; + +import org.jhotdraw.draw.DrawingEditor; +import org.jhotdraw.draw.DrawingView; +import org.jhotdraw.draw.handle.Handle; +import org.junit.Test; +import org.mockito.Mock; + +public class SelectionToolTest { + + @Mock + private DrawingView drawingView; + @Mock + private DrawingEditor drawingEditor; + + @Test + public void testShouldSelectBehind() { + DrawingEditor mockEditor = mock(DrawingEditor.class); + + SelectionTool selectionTool = new SelectionTool(); + + selectionTool.activate(mockEditor); + + MouseEvent ctrlEvent = mock(MouseEvent.class); + when(ctrlEvent.isControlDown()).thenReturn(true); + assertTrue(selectionTool.shouldSelectBehind(ctrlEvent)); + + MouseEvent altEvent = mock(MouseEvent.class); + when(altEvent.isAltDown()).thenReturn(true); + assertFalse(selectionTool.shouldSelectBehind(altEvent)); + + MouseEvent noModifierEvent = mock(MouseEvent.class); + when(noModifierEvent.getModifiers()).thenReturn(0); + assertFalse(selectionTool.shouldSelectBehind(noModifierEvent)); + } + + @Test + public void testActivateAndDeactivate() { + DrawingEditor mockEditor = mock(DrawingEditor.class); + + SelectionTool selectionTool = new SelectionTool(); + + selectionTool.activate(mockEditor); + assertTrue(selectionTool.isActive()); + selectionTool.deactivate(mockEditor); + assertFalse(selectionTool.isActive()); + } + + @Test + public void testCreateNewTrackerWithHandle() { + + SelectionTool selectionTool = new SelectionTool(); + + MouseEvent mockEvent = mock(MouseEvent.class); + + drawingView = mock(DrawingView.class); + when(drawingView.isEnabled()).thenReturn(true); + + drawingEditor = mock(DrawingEditor.class); + when(drawingEditor.getActiveView()).thenReturn(drawingView); + + selectionTool.activate(drawingEditor); + + Handle mockHandle = mock(Handle.class); + + Point testPoint = new Point(10, 20); + + when(drawingView.findHandle(testPoint)).thenReturn(mockHandle); + when(selectionTool.getView()).thenReturn(drawingView); + + Tool result = selectionTool.createNewTracker(mockHandle, mockEvent, drawingView); + + verify(drawingView).findHandle(testPoint); + + assertNotNull(result); // assuming createNewTracker returns a Tool + } + + @Test + public void testMousePressed_ClearSelectionWithoutShift() { + + SelectionTool selectionTool = new SelectionTool(); + + drawingView = mock(DrawingView.class); + + drawingEditor = mock(DrawingEditor.class); + when(drawingEditor.getActiveView()).thenReturn(drawingView); + + selectionTool.activate(drawingEditor); + + MouseEvent mouseEvent = mock(MouseEvent.class); + + when(mouseEvent.isShiftDown()).thenReturn(false); + when(mouseEvent.getPoint()).thenReturn(new Point()); + when(drawingView.getSelectionCount()).thenReturn(1); + + when(selectionTool.getView()).thenReturn(drawingView); + + selectionTool.mousePressed(mouseEvent); + + verify(drawingView, times(1)).clearSelection(); + verify(drawingView, times(1)).setHandleDetailLevel(0); + } + +} diff --git a/jhotdraw-datatransfer/jhotdraw-datatransfer.iml b/jhotdraw-datatransfer/jhotdraw-datatransfer.iml index ec1ce387c..5e4d4c39a 100644 --- a/jhotdraw-datatransfer/jhotdraw-datatransfer.iml +++ b/jhotdraw-datatransfer/jhotdraw-datatransfer.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-gui/jhotdraw-gui.iml b/jhotdraw-gui/jhotdraw-gui.iml index e9a8dd3b6..178fd791b 100644 --- a/jhotdraw-gui/jhotdraw-gui.iml +++ b/jhotdraw-gui/jhotdraw-gui.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-samples/jhotdraw-samples-mini/jhotdraw-samples-mini.iml b/jhotdraw-samples/jhotdraw-samples-mini/jhotdraw-samples-mini.iml index 53177da23..8f5dfb87a 100644 --- a/jhotdraw-samples/jhotdraw-samples-mini/jhotdraw-samples-mini.iml +++ b/jhotdraw-samples/jhotdraw-samples-mini/jhotdraw-samples-mini.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-samples/jhotdraw-samples-misc/jhotdraw-samples-misc.iml b/jhotdraw-samples/jhotdraw-samples-misc/jhotdraw-samples-misc.iml index b6518b140..a121b0930 100644 --- a/jhotdraw-samples/jhotdraw-samples-misc/jhotdraw-samples-misc.iml +++ b/jhotdraw-samples/jhotdraw-samples-misc/jhotdraw-samples-misc.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-samples/jhotdraw-samples-misc/pom.xml b/jhotdraw-samples/jhotdraw-samples-misc/pom.xml index 1d63de64d..7d047f4b7 100644 --- a/jhotdraw-samples/jhotdraw-samples-misc/pom.xml +++ b/jhotdraw-samples/jhotdraw-samples-misc/pom.xml @@ -8,7 +8,24 @@ jhotdraw-samples-misc jar + + + github + GitHub external Packages + https://maven.pkg.github.com/MetaSoc/MavenRepository + + + + dk.sdu.cbse + featuretracerlite + 1.1-SNAPSHOT + + + org.aspectj + aspectjweaver + 1.9.9 + ${project.groupId} jhotdraw-core @@ -24,11 +41,6 @@ htmlunit 2.37.0 - - org.aspectj - aspectjweaver - 1.9.9 - ${project.groupId} jhotdraw-app @@ -40,26 +52,29 @@ 4.13.2 test + + org.jhotdraw + jhotdraw-api + 9.1-SNAPSHOT + compile + + - - org.codehaus.mojo - exec-maven-plugin - 3.1.0 - - - run-java - install - - java - - - - - org.jhotdraw.samples.svg.Main - - + + org.apache.maven.plugins + maven-surefire-plugin + 2.22.2 + + + -javaagent:"C:\Users\blito\.m2\repository\org\aspectj\aspectjweaver\1.9.9\aspectjweaver-1.9.9.jar" + --add-opens java.base/java.lang=ALL-UNNAMED + + true + always + + \ No newline at end of file diff --git a/jhotdraw-samples/jhotdraw-samples-misc/src/main/java/org/jhotdraw/samples/svg/Main.java b/jhotdraw-samples/jhotdraw-samples-misc/src/main/java/org/jhotdraw/samples/svg/Main.java index 11e156729..23fe6dbda 100644 --- a/jhotdraw-samples/jhotdraw-samples-misc/src/main/java/org/jhotdraw/samples/svg/Main.java +++ b/jhotdraw-samples/jhotdraw-samples-misc/src/main/java/org/jhotdraw/samples/svg/Main.java @@ -7,6 +7,7 @@ */ package org.jhotdraw.samples.svg; +import dk.sdu.mmmi.featuretracer.lib.FeatureEntryPoint; import org.jhotdraw.api.app.Application; import org.jhotdraw.app.OSXApplication; import org.jhotdraw.app.SDIApplication; @@ -26,6 +27,8 @@ public class Main { /** * Creates a new instance. */ + + @FeatureEntryPoint(value = "Main") public static void main(String[] args) { // Debug resource bundle ResourceBundleUtil.setVerbose(true); diff --git a/jhotdraw-samples/jhotdraw-samples-misc/src/main/resources/org/jhotdraw/samples/svg/Labels.properties b/jhotdraw-samples/jhotdraw-samples-misc/src/main/resources/org/jhotdraw/samples/svg/Labels.properties index 191a94841..f0d7fc334 100644 --- a/jhotdraw-samples/jhotdraw-samples-misc/src/main/resources/org/jhotdraw/samples/svg/Labels.properties +++ b/jhotdraw-samples/jhotdraw-samples-misc/src/main/resources/org/jhotdraw/samples/svg/Labels.properties @@ -1,494 +1,313 @@ # Sample ResourceBundle properties file - -closePath=Close Path - -openPath=Open Path - -selectionSplit=Split Path - -selectionCombine=Combine Paths - -windingEvenOdd=Fill Even Odd - -windingNonZero=Fill Non Zero - -edit.removeTransform.text=Remove Transformation - -saveDrawing=Save - -edit.bringToFront.toolTipText=Bring to Front - -edit.bringToFront.largeIcon=${imageDir}/moveToFront.png - -edit.bringToFront.text=Bring to Front - -edit.sendToBack.text=Send to Back - -edit.sendToBack.toolTipText=Send to Back - -edit.sendToBack.largeIcon=${imageDir}/moveToBack.png - -cancel=Cancel - -progressInitializing=Initializing Applet\u2026 - -progressLoading=Loading Drawing\u2026 - -progressSaving=Saving Drawing\u2026 - -progressOpeningEditor=Opening Editor\u2026 - -messageSaveFailed=Couldn''t save the drawing.

Upload address: {0}
Error message: {1}. - -attributes.toolbar=Attributes +actions.largeIcon=${imageDir}/actions.png +actions.toolbar=Actions +actions.toolTipText=Actions +actions=Actions +align.toolbar=Align +align=Align +alignEast.largeIcon=${imageDir}/alignEast.png +alignEast.toolTipText=Align Right +alignGrid.largeIcon=${imageDir}/alignGrid.png +alignGrid.toolTipText=Align to Grid +alignGrid=Align to grid +alignGridSmall.largeIcon=${imageDir}/alignGridSmall.png +alignGridSmall.toolTipText=Align to Grid +alignHorizontal.largeIcon=${imageDir}/alignHorizontal.png +alignHorizontal.toolTipText=Align Horizontal alignment.toolbar=Align - -messageLoadFailed=Couldn''t load the drawing.

Download address: {0}
Error message: {1}. - -tools.toolbar=Tools - +alignmentToolBarTitle=Align +alignNorth.largeIcon=${imageDir}/alignNorth.png +alignNorth.toolTipText=Align Top +alignSouth.largeIcon=${imageDir}/alignSouth.png +alignSouth.toolTipText=Align Bottom +alignVertical.largeIcon=${imageDir}/alignVertical.png +alignVertical.toolTipText=Align Vertical +alignWest.largeIcon=${imageDir}/alignWest.png +alignWest.toolTipText=Align Left +arrange.toolbar=Arrange +attribute.canvasFillColor.largeIcon=${imageDir}/attributeFillColor.png +attribute.canvasFillColor.text=Canvas Color +attribute.canvasFillColor.toolTipText=Canvas Color +attribute.canvasFillOpacity.icon=${imageDir}/attributeOpacity.png +attribute.canvasFillOpacity.largeIcon=${imageDir}/attributeOpacity.png +attribute.canvasFillOpacity.smallIcon=${imageDir}/attributeOpacity.png +attribute.canvasFillOpacity.toolTipText=Canvas Opacity +attribute.canvasHeight.text=H: +attribute.canvasHeight.toolTipText=Canvas Height +attribute.canvasWidth.text=W: +attribute.canvasWidth.toolTipText=Canvas Width +attribute.closePath.text=Close Path +attribute.color.colorChooser.toolTipText=Open Color Chooser +attribute.color.noColor.toolTipText=No Color attribute.figureLink.text=Link\: - -summary=Summary\: - attribute.figureLink.toolTipText=Link to a Website - -summary.toolbar=Summary - -toolbars=Toolbars - -imageDir=/org/jhotdraw/samples/svg/action/images - -view=View - -view.mnem=V - -windowNew=New Window - -windowNew.largeIcon=${imageDir}/ - -windowNew.mnem= - -windowClose=Close - -windowClose.mnem=c - -windowClose.largeIcon=${imageDir}/ - -windowNew.acc= - -windowClose.acc= -viewStandardToolBar=Standard - -viewDrawToolBar=Draw - -viewAttributesToolBar=Attributes - -viewAlignmentToolBar=Align - -viewStandardToolBar=Standard - -view.zoomFactor.toolTipText=Zoom - -attribute.strokeColor.toolTipText=Line Color - -attribute.strokeColor.largeIcon=${imageDir}/attributeStrokeColor.png - -attribute.fillColor.toolTipText=Fill Color - +attribute.figureLinkTarget.text=Target: +attribute.figureLinkTarget.toolTipText=Link Target +attribute.figureOpacity.icon=${imageDir}/attributeOpacity.png +attribute.figureOpacity.largeIcon=${imageDir}/attributeOpacity.png +attribute.figureOpacity.smallIcon=${imageDir}/attributeOpacity.png +attribute.figureOpacity.toolTipText=Figure Opacity attribute.fillColor.largeIcon=${imageDir}/attributeFillColor.png - -attribute.textColor.toolTipText=Text Color - -attribute.textColor.largeIcon=${imageDir}/attributeTextColor.png - -attribute.strokeWidth.toolTipText=Stroke Width - -attribute.strokeWidth.largeIcon=${imageDir}/attributeStrokeWidth.png - -attribute.strokeDecoration.toolTipText=Arrow Tips - -attribute.strokeDecoration.largeIcon=${imageDir}/attributeStrokeDecoration.png - -attribute.strokeDashes.toolTipText=Line Dashes - -attribute.strokeDashes.largeIcon=${imageDir}/attributeStrokeDashes.png - -moveToFront.toolTipText=Bring to Front - -moveToFront.largeIcon=${imageDir}/moveToFront.png - -moveToBack.toolTipText=Send to Back - -moveToBack.largeIcon=${imageDir}/moveToBack.png - -selectionTool.toolTipText=Selection Tool
Click multiple times to toggle handles. - -selectionTool.largeIcon=${imageDir}/selectionTool.png - -attribute.font.toolTipText=Font - +attribute.fillColor.toolTipText=Fill Color +attribute.fillOpacity.largeIcon=${imageDir}/attributeOpacity.png +attribute.fillOpacity.text=Fill Opacity +attribute.fillOpacity.toolTipText=Fill Opacity attribute.font.largeIcon=${imageDir}/attributeFont.png - -attribute.fontStyle.bold.toolTipText=Bold - +attribute.font.toolTipText=Font +attribute.fontSize.largeIcon=${imageDir}/attributeFontSize.png +attribute.fontSize.toolTipText=Font Size attribute.fontStyle.bold.largeIcon=${imageDir}/attributeFontBold.png - -attribute.fontStyle.underline.toolTipText=Underlined - -attribute.fontStyle.underline.largeIcon=${imageDir}/attributeFontUnderline.png - -attribute.fontStyle.italic.toolTipText=Italic - +attribute.fontStyle.bold.text=Bold +attribute.fontStyle.bold.toolTipText=Bold attribute.fontStyle.italic.largeIcon=${imageDir}/attributeFontItalic.png - -alignGrid.toolTipText=Align to Grid - -alignGrid.largeIcon=${imageDir}/alignGrid.png - -align=Align - -alignNorth.toolTipText=Align Top - -alignNorth.largeIcon=${imageDir}/alignNorth.png - -alignSouth.toolTipText=Align Bottom - -alignSouth.largeIcon=${imageDir}/alignSouth.png - -alignEast.toolTipText=Align Right - -alignEast.largeIcon=${imageDir}/alignEast.png - -alignWest.toolTipText=Align Left - -alignWest.largeIcon=${imageDir}/alignWest.png - -alignVertical.toolTipText=Align Vertical - -alignVertical.largeIcon=${imageDir}/alignVertical.png - -alignHorizontal.toolTipText=Align Horizontal - -alignHorizontal.largeIcon=${imageDir}/alignHorizontal.png - -moveEast.toolTipText=Move Right - -moveEast.largeIcon=${imageDir}/moveEast.png - -moveWest.largeIcon=${imageDir}/moveWest.png - -moveWest.toolTipText=Move Left - -moveSouth.largeIcon=${imageDir}/moveSouth.png - -moveNorth.toolTipText=Move Up - -moveNorth.largeIcon=${imageDir}/moveNorth.png - -moveSouth.toolTipText=Move Down - -attributesPick.toolTipText=Pick attributes - -attributesPick.largeIcon=${imageDir}/attributesPick.png - -moveToFront=Bring to Front - -moveToBack=Send to Back - -createTextArea.toolTipText=Text Area - -createTextArea.largeIcon=${imageDir}/createTextArea.png - -createRectangle.toolTipText=Rectangle - -createRectangle.largeIcon=${imageDir}/createRectangle.png - -createEllipse.toolTipText=Ellipse - -createEllipse.largeIcon=${imageDir}/createEllipse.png - -createRoundRectangle.toolTipText=Rounded Rectangle - -createRoundRectangle.largeIcon=${imageDir}/createRoundRectangle.png - -createLine.toolTipText=Line - -createLine.largeIcon=${imageDir}/createLine.png - -createLineConnection=Connection - -createLineConnection.largeIcon=${imageDir}/createLineConnection.png - -createElbowConnection.toolTipText=Elbow Connection - -createScribble.toolTipText=Scribble - -createScribble.largeIcon=${imageDir}/createScribble.png - -createText.toolTipText=Text - -createText.largeIcon=${imageDir}/createText.png - -createPolygon.toolTipText=Polygon - -createPolygon.largeIcon=${imageDir}/createPolygon.png - -createArrow.toolTipText=Arrow - -createArrow.largeIcon=${imageDir}/createArrow.png - -createElbowConnection.largeIcon=${imageDir}/createElbowConnection.png - -attribute.strokeTypeBasic=Basic Stroke - -attribute.strokeTypeDouble=Double Stroke - -attribute.strokeType.largeIcon=${imageDir}/attributeStrokeType.png - -attribute.strokePlacementCenter=Center - -attribute.strokePlacementInside=Inside - -attribute.strokePlacementOutside=Outside - -attributesApply.toolTipText=Apply attributes - -attributesApply.largeIcon=${imageDir}/attributesApply.png - -attribute.strokePlacement.largeIcon=${imageDir}/attributeStrokePlacement.png - -attribute.strokePlacement.toolTipText=Stroke Placement - -attribute.strokePlacementInsideFilled=Inside Filled - -attribute.strokePlacementOutsideFilled=Outside Filled - -attribute.strokePlacementCenterFilled=Center Filled - -selectionGroup=Group - -selectionGroup.largeIcon=${imageDir}/selectionGroup.png - -selectionUngroup=Ungroup - -selectionUngroup.largeIcon=${imageDir}/selectionUngroup.png - -editSelectSame=Select Same - -createDiamond.largeIcon=${imageDir}/createDiamond.png - -createDiamond.toolTipText=Diamond - -createTriangle.toolTipText=Triangle - -createTriangle.largeIcon=${imageDir}/createTriangle.png - -attribute.strokePlacementInsideUnfilled=Inside unfilled - -attribute.strokePlacementOutsideUnfilled=Outside Unfilled - -attribute.strokePlacementCenterUnfilled=Center Unfilled - -alignGridSmall.largeIcon=${imageDir}/alignGridSmall.png - -alignGridSmall.toolTipText=Align to Grid - -drawToolBarTitle=Draw - -alignmentToolBarTitle=Align - -attributesToolBarTitle=Attributes - -transformFigure=Transform - -alignGrid=Align to grid - -zoom=Zoom - -actions.largeIcon=${imageDir}/actions.png - -actions.toolTipText=Actions - -actions=Actions - -windingRule=Winding Rule - -windingRuleEvenOdd=Even Odd - -windingRuleNonZero=Non Zero - -createImage.largeIcon=${imageDir}/createImage.png - -createImage.toolTipText=Image - -failedToLoadImage=Couldn''t load image from file "{0}". - -attribute.strokeCap.largeIcon=${imageDir}/attributeStrokeCap.png - -attribute.strokeCap.toolTipText=Line Caps - +attribute.fontStyle.italic.text=Italic +attribute.fontStyle.italic.toolTipText=Italic +attribute.fontStyle.underline.largeIcon=${imageDir}/attributeFontUnderline.png +attribute.fontStyle.underline.text=Underline +attribute.fontStyle.underline.toolTipText=Underlined +attribute.opacity.largeIcon=${imageDir}/attributeOpacity.png +attribute.opacity.text=Opacity +attribute.opacity.toolTipText=Opacity +attribute.openPath.text=Open Path attribute.strokeCap.butt=Butt - +attribute.strokeCap.largeIcon=${imageDir}/attributeStrokeCap.png attribute.strokeCap.round=Round - attribute.strokeCap.square=Square - -attribute.strokeJoin.largeIcon=${imageDir}/attributeStrokeJoin.png - -attribute.strokeJoin.miter=Miter - -attribute.strokeJoin.round=Round - +attribute.strokeCap.toolTipText=Line Caps +attribute.strokeColor.largeIcon=${imageDir}/attributeStrokeColor.png +attribute.strokeColor.toolTipText=Line Color +attribute.strokeDashes.largeIcon=${imageDir}/attributeStrokeDashes.png +attribute.strokeDashes.toolTipText=Line Dashes +attribute.strokeDashPhase.text=Dash Offset +attribute.strokeDashPhase.toolTipText=Dash Offset +attribute.strokeDecoration.largeIcon=${imageDir}/attributeStrokeDecoration.png +attribute.strokeDecoration.toolTipText=Arrow Tips attribute.strokeJoin.bevel=Bevel - -bezierCubicControlHandle.toolTipText={0}.
Command-click changes control point type. - -bezierNode.linearNode=Edge Point - -bezierNode.quadraticNode=Quadratic Curve Point - -bezierNode.cubicNode=Cubic Curve Point - -bezierNodeHandle.toolTipText={0}
Command-click changes point type. - -bezierCubicControl.unconstrainedControl=Unconstrained Control Point - -bezierCubicControl.colinearControl=Colinear Control Point - -bezierQuadraticControlHandle.toolTipText=Control Point - -fontSizeHandle.toolTipText=Font Size - -roundRectangleRadiusHandle.toolTipText=Round-Rectangle Radius - -rotateHandle.toolTipText=Rotate - -resizeHandle.toolTipText=Resize - -transformHandle.toolTipText=Scale - -multipleValues=Multiple Values - - -attribute.opacity.toolTipText=Opacity - -attribute.opacity.largeIcon=${imageDir}/attributeOpacity.png - -edit.undo.text=Undo - -edit.redo.text=Redo - -edit.redo.largeIcon=${imageDir}/editRedo.png - -edit.undo.largeIcon=${imageDir}/editUndo.png - -view.zoomFactor.text=Zoom - -view.zoomFactor.largeIcon= -edit.flattenTransform.text=Flatten Transformation - +attribute.strokeJoin.largeIcon=${imageDir}/attributeStrokeJoin.png +attribute.strokeJoin.miter=Miter +attribute.strokeJoin.round=Round attribute.strokeJoin.toolTipText=Joints -progressProcessingDrawing=Processing Drawing\u2026 -actions.toolbar=Actions -fill.toolbar=Fill -stroke.toolbar=Stroke -font.toolbar=Font -align.toolbar=Align -figure.toolbar=Figure -arrange.toolbar=Arrange -canvas.toolbar=Canvas -attribute.fillOpacity.largeIcon=${imageDir}/attributeOpacity.png -attribute.fillOpacity.toolTipText=Fill Opacity +attribute.strokeOpacity.icon=${imageDir}/attributeOpacity.png attribute.strokeOpacity.largeIcon=${imageDir}/attributeOpacity.png +attribute.strokeOpacity.smallIcon=${imageDir}/attributeOpacity.png +attribute.strokeOpacity.text=Stroke Opacity attribute.strokeOpacity.toolTipText=Stroke Opacity -attribute.canvasFillColor.toolTipText=Canvas Color -attribute.canvasFillOpacity.toolTipText=Canvas Opacity -attribute.canvasFillOpacity.largeIcon=${imageDir}/attributeOpacity.png -attribute.canvasFillColor.largeIcon=${imageDir}/attributeFillColor.png -attribute.figureOpacity.toolTipText=Figure Opacity -attribute.figureOpacity.largeIcon=${imageDir}/attributeOpacity.png -attribute.canvasFillColor.text=Canvas Color -attribute.color.noColor.toolTipText=No Color -edit.redo.toolTipText=Redo -edit.undo.toolTipText=Undo -view.viewSource.text=View Source -attribute.canvasWidth.text=W: -attribute.canvasWidth.toolTipText=Canvas Width -attribute.canvasHeight.text=H: -attribute.canvasHeight.toolTipText=Canvas Height -view.viewSource.toolTipText= -view.viewSource.accelerator= -view.viewSource.mnemonic= -view.viewSource.largeIcon= -edit.combinePaths.text=Combine Paths -edit.combinePaths.toolTipText=Combine Paths -edit.combinePaths.accelerator= -edit.combinePaths.mnemonic= -edit.combinePaths.largeIcon= -edit.splitPath.text=Split Path -edit.splitPath.toolTipText=Split Path -edit.splitPath.accelerator= -edit.splitPath.mnemonic= -edit.splitPath.largeIcon= +attribute.strokePlacement.largeIcon=${imageDir}/attributeStrokePlacement.png +attribute.strokePlacement.toolTipText=Stroke Placement +attribute.strokePlacementCenter=Center +attribute.strokePlacementCenterFilled=Center Filled +attribute.strokePlacementCenterUnfilled=Center Unfilled +attribute.strokePlacementInside=Inside +attribute.strokePlacementInsideFilled=Inside Filled +attribute.strokePlacementInsideUnfilled=Inside unfilled +attribute.strokePlacementOutside=Outside +attribute.strokePlacementOutsideFilled=Outside Filled +attribute.strokePlacementOutsideUnfilled=Outside Unfilled +attribute.strokeType.largeIcon=${imageDir}/attributeStrokeType.png +attribute.strokeTypeBasic=Basic Stroke +attribute.strokeTypeDouble=Double Stroke +attribute.strokeWidth.largeIcon=${imageDir}/attributeStrokeWidth.png +attribute.strokeWidth.toolTipText=Stroke Width +attribute.textColor.largeIcon=${imageDir}/attributeTextColor.png +attribute.textColor.toolTipText=Text Color +attribute.windingRule.evenOdd.text=Even Odd +attribute.windingRule.nonZero.text=Non Zero +attributes.toolbar=Attributes +attributesApply.largeIcon=${imageDir}/attributesApply.png +attributesApply.toolTipText=Apply attributes +attributesPick.largeIcon=${imageDir}/attributesPick.png +attributesPick.toolTipText=Pick attributes +attributesToolBarTitle=Attributes +bezierCubicControl.colinearControl=Colinear Control Point +bezierCubicControl.unconstrainedControl=Unconstrained Control Point +bezierCubicControlHandle.toolTipText={0}.
Command-click changes control point type. +bezierNode.cubicNode=Cubic Curve Point +bezierNode.linearNode=Edge Point +bezierNode.quadraticNode=Quadratic Curve Point +bezierNodeHandle.toolTipText={0}
Command-click changes point type. +bezierQuadraticControlHandle.toolTipText=Control Point +cancel=Cancel +canvas.toolbar=Canvas +closePath=Close Path +createArrow.largeIcon=${imageDir}/createArrow.png +createArrow.toolTipText=Arrow +createDiamond.largeIcon=${imageDir}/createDiamond.png +createDiamond.toolTipText=Diamond +createElbowConnection.largeIcon=${imageDir}/createElbowConnection.png +createElbowConnection.toolTipText=Elbow Connection +createEllipse.largeIcon=${imageDir}/createEllipse.png +createEllipse.toolTipText=Ellipse +createImage.largeIcon=${imageDir}/createImage.png +createImage.toolTipText=Image +createLine.largeIcon=${imageDir}/createLine.png +createLine.toolTipText=Line +createLineConnection.largeIcon=${imageDir}/createLineConnection.png +createLineConnection=Connection +createPolygon.largeIcon=${imageDir}/createPolygon.png +createPolygon.toolTipText=Polygon +createRectangle.largeIcon=${imageDir}/createRectangle.png +createRectangle.toolTipText=Rectangle +createRoundRectangle.largeIcon=${imageDir}/createRoundRectangle.png +createRoundRectangle.toolTipText=Rounded Rectangle +createScribble.largeIcon=${imageDir}/createScribble.png +createScribble.toolTipText=Scribble +createText.largeIcon=${imageDir}/createText.png +createText.toolTipText=Text +createTextArea.largeIcon=${imageDir}/createTextArea.png +createTextArea.toolTipText=Text Area +createTriangle.largeIcon=${imageDir}/createTriangle.png +createTriangle.toolTipText=Triangle +drawToolBarTitle=Draw +edit.adjustHeightToImageAspect.text=Adjust height to image aspect +edit.adjustWidthToImageAspect.text=Adjust width to image aspect edit.align.text=Align edit.alignEast.accelerator= +edit.alignEast.largeIcon=${imageDir}/alignEast.png edit.alignEast.mnemonic= edit.alignEast.text= -edit.alignEast.largeIcon=${imageDir}/alignEast.png edit.alignEast.toolTipText=Align Right edit.alignHorizontal.accelerator= +edit.alignHorizontal.largeIcon=${imageDir}/alignHorizontal.png edit.alignHorizontal.mnemonic= edit.alignHorizontal.text= -edit.alignHorizontal.largeIcon=${imageDir}/alignHorizontal.png edit.alignHorizontal.toolTipText=Align Horizontal -window.alignmentToolBar.title=Align edit.alignNorth.accelerator= +edit.alignNorth.largeIcon=${imageDir}/alignNorth.png edit.alignNorth.mnemonic= edit.alignNorth.text= -edit.alignNorth.largeIcon=${imageDir}/alignNorth.png edit.alignNorth.toolTipText=Align Top edit.alignSouth.accelerator= +edit.alignSouth.largeIcon=${imageDir}/alignSouth.png edit.alignSouth.mnemonic= edit.alignSouth.text= -edit.alignSouth.largeIcon=${imageDir}/alignSouth.png edit.alignSouth.toolTipText=Align Bottom edit.alignVertical.accelerator= +edit.alignVertical.largeIcon=${imageDir}/alignVertical.png edit.alignVertical.mnemonic= edit.alignVertical.text= -edit.alignVertical.largeIcon=${imageDir}/alignVertical.png edit.alignVertical.toolTipText=Align Vertical edit.alignWest.accelerator= +edit.alignWest.largeIcon=${imageDir}/alignWest.png edit.alignWest.mnemonic= edit.alignWest.text= -edit.alignWest.largeIcon=${imageDir}/alignWest.png edit.alignWest.toolTipText=Align Left - -attribute.fontStyle.bold.text=Bold -attribute.fontStyle.italic.text=Italic -attribute.fontStyle.underline.text=Underline -attribute.openPath.text=Open Path -attribute.windingRule.evenOdd.text=Even Odd -attribute.windingRule.nonZero.text=Non Zero -attribute.fontSize.largeIcon=${imageDir}/attributeFontSize.png -attribute.fontSize.toolTipText=Font Size -attribute.color.colorChooser.toolTipText=Open Color Chooser +edit.bringToFront.largeIcon=${imageDir}/moveToFront.png +edit.bringToFront.text=Bring to Front +edit.bringToFront.toolTipText=Bring to Front +edit.combinePaths.accelerator= +edit.combinePaths.icon= +edit.combinePaths.largeIcon= +edit.combinePaths.mnemonic= +edit.combinePaths.smallIcon= +edit.combinePaths.text=Combine Paths +edit.combinePaths.toolTipText=Combine Paths +edit.flattenTransform.text=Flatten Transformation +edit.redo.largeIcon=${imageDir}/editRedo.png +edit.redo.text=Redo +edit.redo.toolTipText=Redo +edit.removeTransform.text=Remove Transformation +edit.sendToBack.largeIcon=${imageDir}/moveToBack.png +edit.sendToBack.text=Send to Back +edit.sendToBack.toolTipText=Send to Back +edit.setToImageSize.text=Set to image size +edit.splitPath.accelerator= +edit.splitPath.icon= +edit.splitPath.largeIcon= +edit.splitPath.mnemonic= +edit.splitPath.smallIcon= +edit.splitPath.text=Split Path +edit.splitPath.toolTipText=Split Path +edit.undo.largeIcon=${imageDir}/editUndo.png +edit.undo.text=Undo +edit.undo.toolTipText=Undo +editSelectSame=Select Same +failedToLoadImage=Couldn''t load image from file "{0}". +figure.toolbar=Figure +fill.toolbar=Fill +font.toolbar=Font +fontSizeHandle.toolTipText=Font Size link.toolbar=Link -attribute.figureLinkTarget.text=Target: -attribute.figureLinkTarget.toolTipText=Link Target -attribute.closePath.text=Close Path -attribute.strokeDashPhase.toolTipText=Dash Offset -view.toolTipText=View -view.gridSize.toolTipText=Grid Size -view.toolbar=View +messageLoadFailed=Couldn''t load the drawing.

Download address: {0}
Error message: {1}. messagePanel.close.text=Close -progressProcessing=Processing Drawing\u2026 -attribute.fillOpacity.text=Fill Opacity -attribute.strokeOpacity.text=Stroke Opacity -attribute.strokeDashPhase.text=Dash Offset -attribute.opacity.text=Opacity -edit.setToImageSize.text=Set to image size -edit.adjustHeightToImageAspect.text=Adjust height to image aspect -edit.adjustWidthToImageAspect.text=Adjust width to image aspect +messageSaveFailed=Couldn''t save the drawing.

Upload address: {0}
Error message: {1}. +moveEast.largeIcon=${imageDir}/moveEast.png +moveEast.toolTipText=Move Right +moveNorth.largeIcon=${imageDir}/moveNorth.png +moveNorth.toolTipText=Move Up +moveSouth.largeIcon=${imageDir}/moveSouth.png +moveSouth.toolTipText=Move Down +moveToBack.largeIcon=${imageDir}/moveToBack.png +moveToBack.toolTipText=Send to Back +moveToBack=Send to Back +moveToFront.largeIcon=${imageDir}/moveToFront.png +moveToFront.toolTipText=Bring to Front +moveToFront=Bring to Front +moveWest.largeIcon=${imageDir}/moveWest.png +moveWest.toolTipText=Move Left +multipleValues=Multiple Values +openPath=Open Path +progressInitializing=Initializing Applet\u2026 +progressLoading=Loading Drawing\u2026 progressLoadingFile=Loading {0}... +progressOpeningEditor=Opening Editor\u2026 +progressProcessing=Processing Drawing\u2026 +progressProcessingDrawing=Processing Drawing\u2026 +progressSaving=Saving Drawing\u2026 +resizeHandle.toolTipText=Resize +rotateHandle.toolTipText=Rotate +roundRectangleRadiusHandle.toolTipText=Round-Rectangle Radius +saveDrawing=Save +selectionCombine=Combine Paths +selectionGroup.largeIcon=${imageDir}/selectionGroup.png +selectionGroup=Group +selectionSplit=Split Path +selectionTool.largeIcon=${imageDir}/selectionTool.png +selectionTool.toolTipText=Selection Tool
Click multiple times to toggle handles. +selectionUngroup.largeIcon=${imageDir}/selectionUngroup.png +selectionUngroup=Ungroup +stroke.toolbar=Stroke +summary.toolbar=Summary +summary=Summary\: +toolbars=Toolbars +tools.toolbar=Tools +transformFigure=Transform +transformHandle.toolTipText=Scale +view.gridSize.toolTipText=Grid Size +view.mnem=V +view.toolbar=View +view.toolTipText=View +view.viewSource.accelerator= +view.viewSource.icon= +view.viewSource.largeIcon= +view.viewSource.mnemonic= +view.viewSource.smallIcon= +view.viewSource.text=View Source view.viewSource.titleText={0} as Source +view.viewSource.toolTipText= +view.zoomFactor.icon= +view.zoomFactor.largeIcon= +view.zoomFactor.smallIcon= +view.zoomFactor.text=Zoom +view.zoomFactor.toolTipText=Zoom +view=View +viewAlignmentToolBar=Align +viewAttributesToolBar=Attributes +viewDrawToolBar=Draw +viewStandardToolBar=Standard +windingEvenOdd=Fill Even Odd +windingNonZero=Fill Non Zero +windingRule=Winding Rule +windingRuleEvenOdd=Even Odd +windingRuleNonZero=Non Zero +window.alignmentToolBar.title=Align +windowClose.acc= +windowClose.largeIcon=${imageDir}/ +windowClose.mnem=c +windowClose=Close +windowNew.acc= +windowNew.largeIcon=${imageDir}/ +windowNew.mnem= +windowNew=New Window +zoom=Zoom + +imageDir=/org/jhotdraw/samples/svg/action/images \ No newline at end of file diff --git a/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/MainTest.java b/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/MainTest.java index 82e12d030..dd8bdacd2 100644 --- a/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/MainTest.java +++ b/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/MainTest.java @@ -19,10 +19,10 @@ package org.jhotdraw.samples.svg; -import org.junit.Ignore; +// import org.junit.Ignore; import org.junit.Test; -import static org.junit.Assert.assertEquals; +// import static org.junit.Assert.assertEquals; /** * @@ -34,20 +34,20 @@ public class MainTest { * Test of main method, of class Main. */ @Test - @Ignore + // @Ignore public void testMain() { System.out.println("main"); String[] args = {}; Main.main(args); while (true){ - + } } - @Test - public void test() { - assertEquals(true, true); - } + // @Test + // public void test() { + // assertEquals(true, true); + // } } diff --git a/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/figures/SVGTextAreaFigureTest.java b/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/figures/SVGTextAreaFigureTest.java deleted file mode 100644 index a81fe743d..000000000 --- a/jhotdraw-samples/jhotdraw-samples-misc/src/test/java/org/jhotdraw/samples/svg/figures/SVGTextAreaFigureTest.java +++ /dev/null @@ -1,50 +0,0 @@ -package org.jhotdraw.samples.svg.figures; - -import org.junit.Before; -import org.junit.Test; - -import java.awt.*; -import java.awt.geom.Point2D; -import java.awt.geom.Rectangle2D; - -import static org.junit.Assert.assertEquals; - -public class SVGTextAreaFigureTest { - - private SVGTextAreaFigure figure; - - @Before - public void setUp() { - this.figure = new SVGTextAreaFigure("Test text"); - } - - - @Test - public void testGetText() { - assertEquals("Test text", figure.getText()); - } - - @Test - public void testSetFont() { - figure.setFontSize(20); - assertEquals(20, figure.getFontSize(), 0.1); - } - - @Test - public void testDefaultFont() { - Font font = figure.getFont(); - assertEquals("VERDANA", font.getName()); - } - - @Test - public void testSetBounds() { - Point2D.Double anchor = new Point2D.Double(10,10); - Point2D.Double lead = new Point2D.Double(100, 100); - figure.setBounds(anchor, lead); - Rectangle2D bounds = figure.getBounds(); - assertEquals(10, bounds.getX(), 0.1); - assertEquals(10, bounds.getY(), 0.1); - assertEquals(90, bounds.getHeight(), 0.1); - assertEquals(90, bounds.getWidth(), 0.1); - } -} diff --git a/jhotdraw-samples/jhotdraw-samples.iml b/jhotdraw-samples/jhotdraw-samples.iml index 9ae59adaf..1cec52a5f 100644 --- a/jhotdraw-samples/jhotdraw-samples.iml +++ b/jhotdraw-samples/jhotdraw-samples.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-utils/jhotdraw-utils.iml b/jhotdraw-utils/jhotdraw-utils.iml index 7a2bb0d49..859fec4b5 100644 --- a/jhotdraw-utils/jhotdraw-utils.iml +++ b/jhotdraw-utils/jhotdraw-utils.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw-xml/jhotdraw-xml.iml b/jhotdraw-xml/jhotdraw-xml.iml index 3fba610ba..04727746d 100644 --- a/jhotdraw-xml/jhotdraw-xml.iml +++ b/jhotdraw-xml/jhotdraw-xml.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/jhotdraw.iml b/jhotdraw.iml index e76436a64..14013298f 100644 --- a/jhotdraw.iml +++ b/jhotdraw.iml @@ -1,6 +1,10 @@ +<<<<<<< Updated upstream \ No newline at end of file diff --git a/my-drawings/amogus.png b/my-drawings/amogus.png new file mode 100644 index 000000000..d0a3a3d10 --- /dev/null +++ b/my-drawings/amogus.png @@ -0,0 +1 @@ + diff --git a/my-drawings/amogus.svg b/my-drawings/amogus.svg new file mode 100644 index 000000000..d0a3a3d10 --- /dev/null +++ b/my-drawings/amogus.svg @@ -0,0 +1 @@ +