|
|
@ -4,15 +4,7 @@ import com.fr.base.theme.TemplateTheme; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
import com.fr.design.gui.ibutton.UIButton; |
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
import com.fr.design.i18n.Toolkit; |
|
|
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
import com.fr.design.layout.FRGUIPaneFactory; |
|
|
|
import com.fr.design.mainframe.DesignerContext; |
|
|
|
|
|
|
|
import com.fr.design.mainframe.theme.TemplateThemeProfilePane; |
|
|
|
import com.fr.design.mainframe.theme.TemplateThemeProfilePane; |
|
|
|
import com.fr.file.FILE; |
|
|
|
|
|
|
|
import com.fr.file.FILEChooserPane; |
|
|
|
|
|
|
|
import com.fr.file.FileFILE; |
|
|
|
|
|
|
|
import com.fr.file.filter.ChooseFileFilter; |
|
|
|
|
|
|
|
import com.fr.log.FineLoggerFactory; |
|
|
|
|
|
|
|
import com.fr.stable.ListSet; |
|
|
|
|
|
|
|
import com.fr.stable.xml.XMLPrintWriter; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import javax.swing.JPanel; |
|
|
|
import javax.swing.JPanel; |
|
|
|
import java.awt.BorderLayout; |
|
|
|
import java.awt.BorderLayout; |
|
|
@ -21,10 +13,6 @@ import java.awt.Dimension; |
|
|
|
import java.awt.Window; |
|
|
|
import java.awt.Window; |
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
import java.awt.event.ActionEvent; |
|
|
|
import java.awt.event.ActionListener; |
|
|
|
import java.awt.event.ActionListener; |
|
|
|
import java.io.BufferedOutputStream; |
|
|
|
|
|
|
|
import java.io.File; |
|
|
|
|
|
|
|
import java.io.FileOutputStream; |
|
|
|
|
|
|
|
import java.io.IOException; |
|
|
|
|
|
|
|
import java.util.List; |
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
@ -47,9 +35,6 @@ public class TemplateThemeProfileDialog<T extends TemplateTheme> extends Templat |
|
|
|
content.add(profilePane, BorderLayout.CENTER); |
|
|
|
content.add(profilePane, BorderLayout.CENTER); |
|
|
|
|
|
|
|
|
|
|
|
setContentPane(createDialogContentPane(content, new UIButton[]{ |
|
|
|
setContentPane(createDialogContentPane(content, new UIButton[]{ |
|
|
|
// 用于视觉设计师导出内置主题文件,发布前关闭
|
|
|
|
|
|
|
|
// 后续由产品经理决定是否开启此功能
|
|
|
|
|
|
|
|
createExportButton(profilePane), |
|
|
|
|
|
|
|
profilePane.createSaveButton(), |
|
|
|
profilePane.createSaveButton(), |
|
|
|
profilePane.createSaveAsButton(this), |
|
|
|
profilePane.createSaveAsButton(this), |
|
|
|
createCancelButton() |
|
|
|
createCancelButton() |
|
|
@ -58,63 +43,6 @@ public class TemplateThemeProfileDialog<T extends TemplateTheme> extends Templat |
|
|
|
currentVisibleProfilePane = profilePane; |
|
|
|
currentVisibleProfilePane = profilePane; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
private void exportTheme(T theme) { |
|
|
|
|
|
|
|
FILEChooserPane fileChooser = FILEChooserPane.getInstance(true, true, new ChooseFileFilter() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public boolean accept(FILE f) { |
|
|
|
|
|
|
|
return f.isDirectory(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String getDescription() { |
|
|
|
|
|
|
|
return "export theme to xml"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public boolean containsExtension(String extension) { |
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public String toString() { |
|
|
|
|
|
|
|
return getDescription(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
fileChooser.setCurrentDirectory(new FileFILE(new File("~/"))); |
|
|
|
|
|
|
|
fileChooser.setFileNameTextField(theme.getName(), ".xml"); |
|
|
|
|
|
|
|
FILE exportedFile = null; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int result = fileChooser.showSaveDialog(DesignerContext.getDesignerFrame(), ".xml"); |
|
|
|
|
|
|
|
if (result == FILEChooserPane.JOPTIONPANE_OK_OPTION || result == FILEChooserPane.OK_OPTION) { |
|
|
|
|
|
|
|
exportedFile = fileChooser.getSelectedFILE(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
if (exportedFile == null) { |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try (BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(exportedFile.getPath()))) { |
|
|
|
|
|
|
|
XMLPrintWriter writer = XMLPrintWriter.create(bos); |
|
|
|
|
|
|
|
theme.writeXML(writer); |
|
|
|
|
|
|
|
writer.flush(); |
|
|
|
|
|
|
|
writer.close(); |
|
|
|
|
|
|
|
} catch (IOException e) { |
|
|
|
|
|
|
|
FineLoggerFactory.getLogger().error(e.getMessage(), e); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public UIButton createExportButton(TemplateThemeProfilePane<T> profilePane) { |
|
|
|
|
|
|
|
UIButton exportButton = new UIButton(); |
|
|
|
|
|
|
|
exportButton.setText(Toolkit.i18nText("Fine-Design_Basic_Export")); |
|
|
|
|
|
|
|
exportButton.addActionListener(new ActionListener() { |
|
|
|
|
|
|
|
@Override |
|
|
|
|
|
|
|
public void actionPerformed(ActionEvent e) { |
|
|
|
|
|
|
|
T theme = profilePane.updateBean(); |
|
|
|
|
|
|
|
theme.getImageIdList().setIdList(new ListSet<>()); |
|
|
|
|
|
|
|
exportTheme(theme); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}); |
|
|
|
|
|
|
|
return exportButton; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private UIButton createCancelButton() { |
|
|
|
private UIButton createCancelButton() { |
|
|
|
UIButton button = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Cancel")); |
|
|
|
UIButton button = new UIButton(Toolkit.i18nText("Fine-Design_Basic_Cancel")); |
|
|
|
button.addActionListener(new ActionListener() { |
|
|
|
button.addActionListener(new ActionListener() { |
|
|
|