refactor
This commit is contained in:
parent
1a71db41d7
commit
dbd25dbf4e
@ -189,6 +189,7 @@ public class AppConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void saveLeftPanelTabs(java.util.List<String> paths, java.util.List<String> viewModes, java.util.List<String> focusedItems, int selectedIndex) {
|
public void saveLeftPanelTabs(java.util.List<String> paths, java.util.List<String> viewModes, java.util.List<String> focusedItems, int selectedIndex) {
|
||||||
|
int old = getLeftPanelTabCount();
|
||||||
properties.setProperty("leftPanel.tabs.count", String.valueOf(paths.size()));
|
properties.setProperty("leftPanel.tabs.count", String.valueOf(paths.size()));
|
||||||
for (int i = 0; i < paths.size(); i++) {
|
for (int i = 0; i < paths.size(); i++) {
|
||||||
properties.setProperty("leftPanel.tab." + i + ".path", paths.get(i));
|
properties.setProperty("leftPanel.tab." + i + ".path", paths.get(i));
|
||||||
@ -199,6 +200,11 @@ public class AppConfig {
|
|||||||
properties.remove("leftPanel.tab." + i + ".focusedItem");
|
properties.remove("leftPanel.tab." + i + ".focusedItem");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (int i = paths.size(); i < old; i++) {
|
||||||
|
properties.remove("leftPanel.tab." + i + ".path");
|
||||||
|
properties.remove("leftPanel.tab." + i + ".viewMode");
|
||||||
|
properties.remove("leftPanel.tab." + i + ".focusedItem");
|
||||||
|
}
|
||||||
properties.setProperty("leftPanel.selectedIndex", String.valueOf(selectedIndex));
|
properties.setProperty("leftPanel.selectedIndex", String.valueOf(selectedIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -223,6 +229,7 @@ public class AppConfig {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void saveRightPanelTabs(java.util.List<String> paths, java.util.List<String> viewModes, java.util.List<String> focusedItems, int selectedIndex) {
|
public void saveRightPanelTabs(java.util.List<String> paths, java.util.List<String> viewModes, java.util.List<String> focusedItems, int selectedIndex) {
|
||||||
|
int oldCount = getRightPanelTabCount();
|
||||||
properties.setProperty("rightPanel.tabs.count", String.valueOf(paths.size()));
|
properties.setProperty("rightPanel.tabs.count", String.valueOf(paths.size()));
|
||||||
for (int i = 0; i < paths.size(); i++) {
|
for (int i = 0; i < paths.size(); i++) {
|
||||||
properties.setProperty("rightPanel.tab." + i + ".path", paths.get(i));
|
properties.setProperty("rightPanel.tab." + i + ".path", paths.get(i));
|
||||||
@ -233,6 +240,11 @@ public class AppConfig {
|
|||||||
properties.remove("rightPanel.tab." + i + ".focusedItem");
|
properties.remove("rightPanel.tab." + i + ".focusedItem");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
for (int i = paths.size(); i < oldCount; i++) {
|
||||||
|
properties.remove("rightPanel.tab." + i + ".path");
|
||||||
|
properties.remove("rightPanel.tab." + i + ".viewMode");
|
||||||
|
properties.remove("rightPanel.tab." + i + ".focusedItem");
|
||||||
|
}
|
||||||
properties.setProperty("rightPanel.selectedIndex", String.valueOf(selectedIndex));
|
properties.setProperty("rightPanel.selectedIndex", String.valueOf(selectedIndex));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -103,9 +103,9 @@ public class FileItem {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Format file size into a human-readable string
|
* Format file size into a human-readable string
|
||||||
*/
|
*/
|
||||||
private String formatSize(long size) {
|
public static String formatSize(long size) {
|
||||||
if (size < 1024) {
|
if (size < 1024) {
|
||||||
return size + " B";
|
return size + " B";
|
||||||
} else if (size < 1024 * 1024) {
|
} else if (size < 1024 * 1024) {
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package cz.kamma.kfmanager.ui;
|
package cz.kamma.kfmanager.ui;
|
||||||
|
|
||||||
import cz.kamma.kfmanager.config.AppConfig;
|
import cz.kamma.kfmanager.config.AppConfig;
|
||||||
|
import cz.kamma.kfmanager.model.FileItem;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -917,11 +918,11 @@ public class FileEditor extends JDialog {
|
|||||||
label.setHorizontalAlignment(JLabel.CENTER);
|
label.setHorizontalAlignment(JLabel.CENTER);
|
||||||
scrollPane.setViewportView(label);
|
scrollPane.setViewportView(label);
|
||||||
|
|
||||||
String statusText = String.format("Obraz: %d x %d px", imgW, imgH);
|
String statusText = String.format("Image: %d x %d px", imgW, imgH);
|
||||||
if (scaled) statusText += " (zmenšeno)";
|
if (scaled) statusText += " (scaled)";
|
||||||
statusPosLabel.setText(statusText);
|
statusPosLabel.setText(statusText);
|
||||||
|
|
||||||
String labelText = String.format("Velikost: %s", formatSize(file.length()));
|
String labelText = String.format("Size: %s", FileItem.formatSize(file.length()));
|
||||||
if (imageFiles.size() > 1) {
|
if (imageFiles.size() > 1) {
|
||||||
labelText += String.format(" [%d / %d]", currentImageIndex + 1, imageFiles.size());
|
labelText += String.format(" [%d / %d]", currentImageIndex + 1, imageFiles.size());
|
||||||
}
|
}
|
||||||
@ -936,10 +937,10 @@ public class FileEditor extends JDialog {
|
|||||||
if (hexControlPanel != null) hexControlPanel.setVisible(false);
|
if (hexControlPanel != null) hexControlPanel.setVisible(false);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
textArea.setText("Chyba: Nepodařilo se načíst obrázek.");
|
textArea.setText("Error: Image could not be loaded.");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
textArea.setText("Chyba při načítání obrázku: " + e.getMessage());
|
textArea.setText("Error loading image: " + e.getMessage());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -974,13 +975,6 @@ public class FileEditor extends JDialog {
|
|||||||
setLocationRelativeTo(getOwner());
|
setLocationRelativeTo(getOwner());
|
||||||
}
|
}
|
||||||
|
|
||||||
private String formatSize(long size) {
|
|
||||||
if (size < 1024) return size + " B";
|
|
||||||
int exp = (int) (Math.log(size) / Math.log(1024));
|
|
||||||
String pre = "KMGTPE".charAt(exp-1) + "";
|
|
||||||
return String.format("%.1f %sB", size / Math.pow(1024, exp), pre);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void initImageList() {
|
private void initImageList() {
|
||||||
File parent = file.getParentFile();
|
File parent = file.getParentFile();
|
||||||
if (parent != null && parent.isDirectory()) {
|
if (parent != null && parent.isDirectory()) {
|
||||||
|
|||||||
@ -1770,7 +1770,6 @@ public class FilePanelTab extends JPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Mark all matching items
|
// Mark all matching items
|
||||||
int matchCount = 0;
|
|
||||||
for (FileItem item : tableModel.items) {
|
for (FileItem item : tableModel.items) {
|
||||||
if (item.getName().equals("..")) {
|
if (item.getName().equals("..")) {
|
||||||
continue; // Skip parent directory
|
continue; // Skip parent directory
|
||||||
@ -1778,7 +1777,6 @@ public class FilePanelTab extends JPanel {
|
|||||||
|
|
||||||
if (compiledPattern.matcher(item.getName()).matches()) {
|
if (compiledPattern.matcher(item.getName()).matches()) {
|
||||||
item.setMarked(true);
|
item.setMarked(true);
|
||||||
matchCount++;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2271,7 +2269,7 @@ public class FilePanelTab extends JPanel {
|
|||||||
|
|
||||||
if (markedCount > 0) {
|
if (markedCount > 0) {
|
||||||
statusLabel.setText(String.format(" Selected: %d files, %d directories (%s)",
|
statusLabel.setText(String.format(" Selected: %d files, %d directories (%s)",
|
||||||
fileCount, dirCount, formatSize(totalSize)));
|
fileCount, dirCount, FileItem.formatSize(totalSize)));
|
||||||
} else {
|
} else {
|
||||||
int selectedRow = fileTable.getSelectedRow();
|
int selectedRow = fileTable.getSelectedRow();
|
||||||
if (selectedRow >= 0) {
|
if (selectedRow >= 0) {
|
||||||
@ -2291,7 +2289,7 @@ public class FilePanelTab extends JPanel {
|
|||||||
} else {
|
} else {
|
||||||
statusLabel.setText(String.format(" %s | %s | %s",
|
statusLabel.setText(String.format(" %s | %s | %s",
|
||||||
item.getName(),
|
item.getName(),
|
||||||
formatSize(item.getSize()),
|
FileItem.formatSize(item.getSize()),
|
||||||
item.getFormattedDate()));
|
item.getFormattedDate()));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -2629,18 +2627,6 @@ public class FilePanelTab extends JPanel {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private String formatSize(long size) {
|
|
||||||
if (size < 1024) {
|
|
||||||
return size + " B";
|
|
||||||
} else if (size < 1024 * 1024) {
|
|
||||||
return String.format("%.1f KB", size / 1024.0);
|
|
||||||
} else if (size < 1024 * 1024 * 1024) {
|
|
||||||
return String.format("%.1f MB", size / (1024.0 * 1024.0));
|
|
||||||
} else {
|
|
||||||
return String.format("%.1f GB", size / (1024.0 * 1024.0 * 1024.0));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Getters
|
// Getters
|
||||||
public JTable getFileTable() {
|
public JTable getFileTable() {
|
||||||
return fileTable;
|
return fileTable;
|
||||||
|
|||||||
@ -1,5 +1,7 @@
|
|||||||
package cz.kamma.kfmanager.ui;
|
package cz.kamma.kfmanager.ui;
|
||||||
|
|
||||||
|
import cz.kamma.kfmanager.model.FileItem;
|
||||||
|
|
||||||
import javax.swing.*;
|
import javax.swing.*;
|
||||||
import javax.swing.border.EmptyBorder;
|
import javax.swing.border.EmptyBorder;
|
||||||
import java.awt.*;
|
import java.awt.*;
|
||||||
@ -72,7 +74,7 @@ public class PropertiesDialog extends JDialog {
|
|||||||
addInfoRow(panel, gbc, row++, "Name:", file.getName());
|
addInfoRow(panel, gbc, row++, "Name:", file.getName());
|
||||||
addInfoRow(panel, gbc, row++, "Path:", file.getAbsolutePath());
|
addInfoRow(panel, gbc, row++, "Path:", file.getAbsolutePath());
|
||||||
|
|
||||||
String sizeStr = file.isDirectory() ? "Directory" : formatSize(file.length());
|
String sizeStr = file.isDirectory() ? "Directory" : FileItem.formatSize(file.length());
|
||||||
addInfoRow(panel, gbc, row++, "Size:", sizeStr);
|
addInfoRow(panel, gbc, row++, "Size:", sizeStr);
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
@ -340,11 +342,4 @@ public class PropertiesDialog extends JDialog {
|
|||||||
textField.setOpaque(false);
|
textField.setOpaque(false);
|
||||||
panel.add(textField, gbc);
|
panel.add(textField, gbc);
|
||||||
}
|
}
|
||||||
|
|
||||||
private String formatSize(long bytes) {
|
|
||||||
if (bytes < 1024) return bytes + " B";
|
|
||||||
int exp = (int) (Math.log(bytes) / Math.log(1024));
|
|
||||||
char pre = "KMGTPE".charAt(exp - 1);
|
|
||||||
return String.format("%.1f %cB (%d bytes)", bytes / Math.pow(1024, exp), pre, bytes);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user