📄 fileuploadapplet.java
字号:
filePath = filePath.substring(rootDirLength);
filePath = filePath.replace('\\', '/');
fileNames.add(filePath);
}
}
}
/**
* @see java.applet.Applet#init()
*/
public void init() {
// has to be first before any gui components are created
if (getParameter("overwriteDialogLocale") != null) {
m_overwriteDialogLocale = getParameter("overwriteDialogLocale");
Locale wpLocale = new Locale(m_overwriteDialogLocale);
setLocale(wpLocale);
}
m_opencms = getParameter("opencms");
m_targetUrl = getParameter("target");
m_redirectUrl = getParameter("redirect");
m_redirectTargetFrame = getParameter("targetframe");
if ((m_redirectTargetFrame == null) || m_redirectTargetFrame.equals("")) {
m_redirectTargetFrame = "explorer_files";
}
m_errorUrl = getParameter("error");
m_uploadFolder = getParameter("filelist");
m_fileFilterSelection = getParameter("filefilterselection");
String tmpSize = getParameter("maxsize");
if ((tmpSize != null) && (tmpSize.length() > 0)) {
m_maxsize = Long.parseLong(tmpSize);
}
m_fileExtensions = getParameter("fileExtensions");
m_colors = extractColors(getParameter("colors"));
// setup the applet output
m_font = new java.awt.Font(null, Font.BOLD, 12);
m_metrics = getFontMetrics(m_font);
m_source = getImage(getCodeBase(), "org/opencms/applet/upload/applet_source.png");
m_target = getImage(getCodeBase(), "org/opencms/applet/upload/applet_target.png");
m_floater = getImage(getCodeBase(), "org/opencms/applet/upload/floater.gif");
// get the output massages in the correct language
if (getParameter("actionOutputSelect") != null) {
m_actionOutputSelect = getParameter("actionOutputSelect");
}
if (getParameter("actionOutputCount") != null) {
m_actionOutputCount = getParameter("actionOutputCount");
}
if (getParameter("actionOutputCreate") != null) {
m_actionOutputCreate = getParameter("actionOutputCreate");
}
if (getParameter("actionOverwriteCheck") != null) {
m_actionOverwriteCheck = getParameter("actionOverwriteCheck");
}
if (getParameter("actionOutputUpload") != null) {
m_actionOutputUpload = getParameter("actionOutputUpload");
}
if (getParameter("actionOutputError") != null) {
m_actionOutputError = getParameter("actionOutputError");
}
if (getParameter("messageOutputUpload") != null) {
m_messageOutputUpload = getParameter("messageOutputUpload");
}
if (getParameter("messageOutputAdding") != null) {
m_messageOutputAdding = getParameter("messageOutputAdding");
}
if (getParameter("messageOutputErrorZip") != null) {
m_messageOutputErrorZip = getParameter("messageOutputErrorZip");
}
if (getParameter("messageOutputErrorSize") != null) {
m_messageOutputErrorSize = getParameter("messageOutputErrorSize");
}
if (getParameter("messageNoPreview") != null) {
m_messageNoPreview = getParameter("messageNoPreview");
}
if (getParameter("errorLine1") != null) {
m_errorLine1 = getParameter("errorLine1");
}
if (getParameter("certificateErrorTitle") != null) {
m_certificateErrorTitle = getParameter("certificateErrorTitle");
}
if (getParameter("certificateErrorMessage") != null) {
m_certificateErrorMessage = getParameter("certificateErrorMessage");
}
if (getParameter("overwriteDialogTitle") != null) {
m_overwriteDialogTitle = getParameter("overwriteDialogTitle");
}
if (getParameter("overwriteDialogIntro") != null) {
m_overwriteDialogIntro = getParameter("overwriteDialogIntro");
}
if (getParameter("overwriteDialogCancel") != null) {
m_overwriteDialogCancel = getParameter("overwriteDialogCancel");
}
if (getParameter("overwriteDialogOk") != null) {
m_overwriteDialogOk = getParameter("overwriteDialogOk");
}
if (getParameter("clientFolder") != null) {
m_clientFolder = getParameter("clientFolder");
}
m_certificateAccepted = true;
try {
// set log factory to default log factory, otherwise commons logging detection will fail with an exception
System.setProperty(
org.apache.commons.logging.LogFactory.FACTORY_PROPERTY,
org.apache.commons.logging.LogFactory.FACTORY_DEFAULT);
} catch (SecurityException e) {
// this indicates the applet certificate has not been accepted
m_certificateAccepted = false;
e.printStackTrace();
}
}
/**
* Move the floating upload image to right, wrap around on right side.<p>
*/
public void moveFloater() {
m_floaterPos += 10;
if ((m_floaterPos) > 430) {
m_floaterPos = 50;
}
repaint();
}
/**
* @see java.awt.Component#paint(Graphics)
*/
public void paint(Graphics g) {
// create the box
m_offscreen = createImage(getSize().width, getSize().height);
m_offgraphics = m_offscreen.getGraphics();
m_offgraphics.setColor(getColor("bgColor"));
m_offgraphics.fillRect(0, 0, getSize().width, getSize().height);
m_offgraphics.setColor(getColor("outerBorderRightBottom"));
m_offgraphics.drawLine(0, getSize().height - 1, getSize().width - 1, getSize().height - 1);
m_offgraphics.drawLine(getSize().width - 1, 0, getSize().width - 1, getSize().height - 1);
m_offgraphics.setColor(getColor("outerBorderLeftTop"));
m_offgraphics.drawLine(0, 0, getSize().width - 1, 0);
m_offgraphics.drawLine(0, 0, 0, getSize().height - 1);
m_offgraphics.setColor(getColor("innerBorderRightBottom"));
m_offgraphics.drawLine(1, getSize().height - 2, getSize().width - 2, getSize().height - 2);
m_offgraphics.drawLine(getSize().width - 2, 1, getSize().width - 2, getSize().height - 2);
m_offgraphics.setColor(getColor("innerBorderLeftTop"));
m_offgraphics.drawLine(1, 1, getSize().width - 2, 1);
m_offgraphics.drawLine(1, 1, 1, getSize().height - 2);
m_offgraphics.setColor(getColor("bgHeadline"));
m_offgraphics.fillRect(4, 4, getSize().width - 5, 18);
m_offgraphics.setColor(getColor("innerBorderRightBottom"));
m_offgraphics.drawLine(10, getSize().height - 11, getSize().width - 11, getSize().height - 11);
m_offgraphics.drawLine(getSize().width - 11, 25, getSize().width - 11, getSize().height - 11);
m_offgraphics.setColor(getColor("innerBorderLeftTop"));
m_offgraphics.drawLine(10, 25, getSize().width - 11, 25);
m_offgraphics.drawLine(10, 25, 10, getSize().height - 11);
// draw title
int cx = 10;
int cy = 17;
m_offgraphics.setFont(m_font);
m_offgraphics.setColor(getColor("colorHeadline"));
m_offgraphics.drawString(m_action, cx, cy);
m_offgraphics.setColor(getColor("colorText"));
// draw process message
if (m_outputMode >= 3) {
cx = Math.max((getSize().width - m_metrics.stringWidth(m_message)) / 2, 0);
} else {
cx = 25;
}
cy = 41;
m_offgraphics.drawString(m_message, cx, cy);
// draw process bar during zip creation
if (m_outputMode == 2) {
float bar = new Float(m_step).floatValue() / new Float(m_resources).floatValue();
String barText = "(" + m_step + " / " + m_resources + ")";
m_offgraphics.drawRect(25, 50, 450, 20);
m_offgraphics.setColor(Color.white);
m_offgraphics.fillRect(26, 51, 449, 19);
m_offgraphics.setColor(getColor("progessBar"));
m_offgraphics.fillRect(26, 51, new Float(bar * 449).intValue(), 19);
int progressWith = m_metrics.stringWidth(barText);
cx = Math.max((getSize().width - progressWith) / 2, 0);
cy = 64;
m_offgraphics.setColor(Color.black);
m_offgraphics.drawString(barText, cx, cy);
}
// show floater during upload
if (m_outputMode == 3) {
m_offgraphics.drawImage(m_floater, m_floaterPos, 57, this);
m_offgraphics.drawImage(m_source, 30, 47, this);
m_offgraphics.drawImage(m_target, 440, 47, this);
}
// copy the offcreen graphics to the applet
g.drawImage(m_offscreen, 0, 0, null);
}
private List parseDuplicateFiles(String responseBodyAsString) {
List result = new ArrayList();
LineNumberReader reader = new LineNumberReader(new InputStreamReader(new ByteArrayInputStream(
responseBodyAsString.getBytes())));
try {
String trim;
for (String read = reader.readLine(); read != null; read = reader.readLine()) {
trim = read.trim();
if (!(trim.equals("") || trim.equals("\n"))) {
// empty strings could happen if the serverside jsp is edited and has new unwanted linebreaks
result.add(read);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return result;
}
/**
* @see java.lang.Runnable#run()
*/
public void run() {
try {
boolean ok = true;
while (ok) {
ok = true;
m_message = "";
m_resources = 0;
m_step = 0;
// create a new file chooser
if (m_fileSelector == null) {
m_fileSelector = new UploadAppletFileChooser(this);
}
// file selector can read files and folders
m_fileSelector.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
m_fileSelector.setDialogTitle(m_actionOutputSelect);
FileFilter imageFilter = new ImageFilter();
FileFilter officeFilter = new OfficeFilter();
FileFilter webFilter = new WebFilter();
// add two custom file filters (office and images) and the default filters
m_fileSelector.addChoosableFileFilter(imageFilter);
m_fileSelector.addChoosableFileFilter(officeFilter);
m_fileSelector.addChoosableFileFilter(webFilter);
m_fileSelector.setAcceptAllFileFilterUsed(true);
// enable multi-selection of files
m_fileSelector.setMultiSelectionEnabled(true);
// add custom icons for file types.
m_fileSelector.setFileView(new ImageFileView(m_opencms, m_fileExtensions));
// add the image preview pane.
m_fileSelector.setAccessory(new ImagePreview(m_fileSelector, m_messageNoPreview));
if ((m_clientFolder != null) && !m_clientFolder.trim().equals("")) {
File clientFolder = new File(m_clientFolder);
if (clientFolder.exists() && clientFolder.isDirectory()) {
m_fileSelector.setCurrentDirectory(clientFolder);
}
}
m_action = m_actionOutputSelect;
// pre - selection of the filter:
if ((m_fileFilterSelection != null) && !m_fileFilterSelection.trim().equals("")) {
if (WebFilter.FILTER_ID.equals(m_fileFilterSelection)) {
m_fileSelector.setFileFilter(webFilter);
} else if (OfficeFilter.FILTER_ID.equals(m_fileFilterSelection)) {
m_fileSelector.setFileFilter(officeFilter);
} else if (ImageFilter.FILTER_ID.equals(m_fileFilterSelection)) {
m_fileSelector.setFileFilter(imageFilter);
}
}
repaint();
m_overwrites = new ArrayList();
int returnVal = m_fileSelector.showDialog(this, "OK");
// process the results.
if (returnVal == JFileChooser.APPROVE_OPTION) {
// count all resources
m_outputMode = 1;
m_action = m_actionOutputCount;
repaint();
File[] files = m_fileSelector.getSelectedFiles();
List fileNames = new ArrayList();
for (int i = 0; i < files.length; i++) {
getRelativeFilePaths(files[i], fileNames);
}
if (m_overwrites.size() > 0) {
// subtract all duplicate files first
files = subtractDuplicates(fileNames, m_overwrites);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -