<property name="jarName" value="CharacterManaJ.jar"/>
<!-- ビルド日時とバージョン、ベンダー -->
- <property file="version.properties"/>
+ <property file="resources/version.properties"/>
<tstamp prefix="build-info">
<format property="current-date" pattern="yyyy-MM-dd" locale="en" />
<format property="current-time" pattern="hh:mm:ss a z" locale="en" />
<li>Linux\r
<ul>\r
<li>Ubuntu 10.04 sun-java-jdk6</li>\r
- <li>Fedora 14 Desktop openjdk-1.6.0</li>\r
+ <li>Fedora 14 Desktop openjdk-1.6.0 or sun-java-jdk6(recommended)</li>\r
</ul>\r
</li>\r
</ul>\r
<li>Linux\r
<ul>\r
<li>Ubuntu 10.04 sun-java-jdk6</li>\r
- <li>Fedora 14 Desktop openjdk-1.6.0</li>\r
+ <li>Fedora 14 Desktop openjdk-1.6.0/sun-java-jdk6 (sun-javaを推奨)</li>\r
</ul>\r
</li>\r
</ul>\r
<p>実行可能JAR形式ではJREのデフォルトのサイズが使われます。これは搭載している物理メモリによって割り当てられるサイズが64MBあるいは256MBのように変わります。</p>\r
<p>おそらく通常の利用方法において64MBの割り当てでは、やや不足する感があると思いますが、一応、動作はすると思います。</p>\r
<p>実際のメモリ使用状況については Aboutメニューからシステム情報タブの中で確認することができます。</p>\r
+<p>Linuxをお使いの場合は、sun-javaを推奨します。(基本的にはopenjdkでも動作しますが、クリップボードが機能しません。)</p>\r
\r
<h2>[利用コンポーネントについて]</h2>\r
<p>J2SE5の標準APIの他、Apache Antの一部(The Apache License Version 2.0)をライブラリとして使用しています。</p>\r
<entry key="offset">Offset</entry>\r
<entry key="factor">Factor</entry>\r
<entry key="gamma">Gamma</entry>\r
- <entry key="group.hsb.caption">HSB</entry>\r
+ <entry key="group.hsb.caption">HSB + Contrast</entry>\r
<entry key="hue">Hue</entry>\r
<entry key="saturation">Saturation</entry>\r
<entry key="brightness">Brightness</entry>\r
<entry key="offset">オフセット</entry>\r
<entry key="factor">倍率</entry>\r
<entry key="gamma">ガンマ補正</entry>\r
- <entry key="group.hsb.caption">HSB</entry>\r
+ <entry key="group.hsb.caption">HSB + コントラスト</entry>\r
<entry key="hue">色相</entry>\r
<entry key="saturation">彩度</entry>\r
<entry key="brightness">明度</entry>\r
<entry key="file.savePicture.ignoreMacOSX">false</entry>\r
<entry key="file.savePicture.shortcut-key">? S</entry>\r
\r
- <entry key="file.opendir.text">Browse the parts data</entry>\r
+ <entry key="file.opendir.text">Browse this parts data</entry>\r
<entry key="file.opendir.mnemonic">B</entry>\r
<entry key="file.opendir.mnemonicDisp"></entry>\r
<entry key="file.opendir.ignoreMacOSX">false</entry>\r
<entry key="edit.copy.mnemonic">C</entry>\r
<entry key="edit.copy.mnemonicDisp"></entry>\r
<entry key="edit.copy.ignoreMacOSX">false</entry>\r
- <entry key="edit.copy.shortcut-key">? C</entry>\r
+ <entry key="edit.copy.shortcut-key">control C</entry>\r
\r
<entry key="edit.flipHorizontal.text">Flip Horizontal</entry>\r
<entry key="edit.flipHorizontal.mnemonic">H</entry>\r
private static final Logger logger = Logger.getLogger(ImageSelection.class.getName());\r
\r
/**\r
+ * 実行環境がWindowsであるか?\r
+ */\r
+ private static final boolean platformWindows;\r
+ \r
+ /**\r
* 対象となるイメージ\r
*/\r
private BufferedImage img;\r
*/\r
static {\r
String lcOS = System.getProperty("os.name").toLowerCase(); \r
- if (lcOS.indexOf("linux") >= 0) {\r
- // Linuxの場合\r
+ platformWindows = lcOS.indexOf("windows") >= 0;\r
+ if (platformWindows) {\r
+ // Windowsの場合\r
SUPPORTED_FLAVORS = Arrays.asList(new DataFlavor[] {\r
PNG_FLAVOR,\r
- JPEG_FLAVOR,\r
- BMP_FLAVOR,\r
DataFlavor.imageFlavor,\r
});\r
\r
} else {\r
- // Linux以外 (Windows/Mac OS Xを想定)\r
+ // Linux, Mac OS Xの場合を想定\r
SUPPORTED_FLAVORS = Arrays.asList(new DataFlavor[] {\r
PNG_FLAVOR,\r
+ JPEG_FLAVOR,\r
+ BMP_FLAVOR,\r
DataFlavor.imageFlavor,\r
});\r
}\r
*/\r
public static boolean setupSystemFlavorMap() {\r
try {\r
- String lcOS = System.getProperty("os.name").toLowerCase(); \r
- if (lcOS.indexOf("windows") >= 0) {\r
+ if (platformWindows) {\r
AppConfig appConfig = AppConfig.getInstance();\r
if (appConfig.isEnablePNGSupportForWindows()) {\r
// Windowsの場合、PNGへのマップを明示的に設定する.\r
List<String> natives = sysFlavorMap.getNativesForFlavor(null);\r
if (natives.contains("PNG")) {\r
sysFlavorMap.setNativesForFlavor(PNG_FLAVOR, new String[] {"PNG"});\r
+\r
} else {\r
- logger.log(Level.INFO, "unsupported PNG flavor.");\r
+ logger.log(Level.INFO, "PNG flavor is not supported.");\r
}\r
}\r
}\r
try {\r
ImageSaveHelper imageSaveHelper = new ImageSaveHelper();\r
\r
- if (flavor.equals(DataFlavor.imageFlavor)) {\r
- String lcOS = System.getProperty("os.name").toLowerCase(); \r
- AppConfig appConfig = AppConfig.getInstance();\r
- if (lcOS.indexOf("windows") >= 0 || !appConfig.isEnablePNGSupportForWindows()) {\r
- // Windowsの場合は、背景色で塗りつぶしたJPEG互換画像に変換して返す. \r
- // JDK5/6のシステムクリップボードへのコピーでは透過画像をサポートしておらず透過部分が黒色になるため.\r
- // ネイティブPNGとのマッピングが有効であれば、Windowsでは、そちらで対応する.\r
- return imageSaveHelper.createBMPFormatPicture(img, bgColor);\r
-\r
- } else {\r
- // Windows以外、且つ、透過サポートが有効の場合\r
- return img;\r
- }\r
- }\r
- \r
if (flavor.equals(PNG_FLAVOR) || flavor.equals(JPEG_FLAVOR) || flavor.equals(BMP_FLAVOR)) {\r
// image/png, image/jpeg, image/bmpの場合は、\r
// そのファイル形式のデータを生成して、それを返す.\r
ByteArrayOutputStream bos = new ByteArrayOutputStream();\r
try {\r
imageSaveHelper.savePicture(img, bgColor, bos, flavor.getMimeType(), null);\r
- //ImageIO.write(img, flavor.getSubType(), bos);\r
+\r
} finally {\r
bos.close();\r
}\r
return new ByteArrayInputStream(bos.toByteArray());\r
}\r
\r
+ if (flavor.equals(DataFlavor.imageFlavor)) {\r
+ // "image/x-java-image"の場合\r
+ AppConfig appConfig = AppConfig.getInstance();\r
+ if (platformWindows || !appConfig.isEnablePNGSupportForWindows()) {\r
+ // Windowsの場合は、背景色で塗りつぶしたBMP画像に変換して返す. \r
+ // JDK5/6のシステムクリップボードへのコピーでは透過画像をサポートしておらず透過部分が黒色になるため.\r
+ // ネイティブPNGとのマッピングが有効であれば、Windowsでは、そちらで対応する.\r
+ return imageSaveHelper.createBMPFormatPicture(img, bgColor);\r
+\r
+ } else {\r
+ // Windows以外、且つ、透過サポートが有効の場合\r
+ return img;\r
+ }\r
+ }\r
+ \r
} catch (RuntimeException ex) {\r
logger.log(Level.WARNING, "The exception occurred during the data transfer of a clipboard.", ex);\r
throw ex;\r
this.hue = fields.get("hue", 0.f);\r
this.saturation = fields.get("saturation", 0.f);\r
this.brightness = fields.get("brightness", 0.f);\r
- this.contrast = fields.get("contrast", 1.f);\r
+ this.contrast = fields.get("contrast", 0.f);\r
this.offsetR = fields.get("offsetR", 0);\r
this.offsetG = fields.get("offsetG", 0);\r
this.offsetB = fields.get("offsetB", 0);\r
gbc.weighty = 0.;\r
txtCharacterId = new JTextField();\r
txtCharacterId.setEditable(false); // 読み取り専用\r
+ txtCharacterId.setEnabled(false);\r
archiveInfoPanel.add(txtCharacterId, gbc);\r
\r
gbc.gridx = 0;\r
gbc.weighty = 0.;\r
txtCharacterRev = new JTextField();\r
txtCharacterRev.setEditable(false); // 読み取り専用\r
+ txtCharacterRev.setEnabled(false);\r
archiveInfoPanel.add(txtCharacterRev, gbc);\r
\r
gbc.gridx = 0;\r
\r
// 新規作成の場合はキャラクター定義名と作者名を更新可能とする\r
txtCharacterName.setEnabled(current == null);\r
+ txtCharacterName.setEditable(current == null);\r
txtAuthor.setEditable(current == null);\r
+ txtAuthor.setEnabled(current == null);\r
\r
// ID、REVが一致するか?\r
boolean matchID = false;\r