Merge pull request #342 from weisJ/ui_fixes

UI fixes
This commit is contained in:
Konloch 2021-08-07 00:29:44 -07:00 committed by GitHub
commit 7d6a945b25
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 11 deletions

View File

@ -84,7 +84,7 @@ import static the.bytecode.club.bytecodeviewer.Constants.*;
*
* TODO DarkLAF Specific Bugs:
* + Resource List creates swing lag with large project
* + JMenuBar can only be displayed on a JFrame, a work around is needed for this
* + JMenuBar can only be displayed on a JFrame, a work around is needed for this (Partially solved)
*
* TODO IN-PROGRESS:
* + Resource Exporter/Save/Decompile As Zip needs to be rewritten

View File

@ -3,8 +3,10 @@ package the.bytecode.club.bytecodeviewer.gui.components;
import com.github.weisj.darklaf.icons.ThemedSVGIcon;
import the.bytecode.club.bytecodeviewer.Configuration;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.Workspace;
import the.bytecode.club.bytecodeviewer.gui.theme.LAFTheme;
import the.bytecode.club.bytecodeviewer.resources.IconResources;
import javax.swing.BorderFactory;
import javax.swing.JInternalFrame;
/***************************************************************************
@ -40,7 +42,16 @@ public abstract class VisibleComponent extends JInternalFrame
super(title, false, false, false, false);
this.setDefaultIcon();
}
@Override
public void updateUI() {
if (Configuration.lafTheme != LAFTheme.SYSTEM)
setBorder(BorderFactory.createEmptyBorder());
else
setBorder(null);
super.updateUI();
}
public void setDefaultIcon()
{
try {

View File

@ -6,7 +6,6 @@ import org.apache.commons.compress.utils.FileNameUtils;
import the.bytecode.club.bytecodeviewer.BytecodeViewer;
import the.bytecode.club.bytecodeviewer.Configuration;
import the.bytecode.club.bytecodeviewer.gui.resourceviewer.viewer.ComponentViewer;
import the.bytecode.club.bytecodeviewer.gui.theme.LAFTheme;
import the.bytecode.club.bytecodeviewer.resources.IconResources;
import the.bytecode.club.bytecodeviewer.gui.components.FileChooser;
import the.bytecode.club.bytecodeviewer.gui.components.SearchableRSyntaxTextArea;
@ -18,6 +17,7 @@ import the.bytecode.club.bytecodeviewer.util.MiscUtils;
import the.bytecode.club.bytecodeviewer.util.SyntaxLanguage;
import javax.swing.*;
import javax.swing.border.LineBorder;
import java.awt.*;
import java.io.File;
import java.io.IOException;
@ -123,16 +123,18 @@ public class PluginWriter extends JFrame
JPanel p = new JPanel(new BorderLayout());
JPanel p2 = new JPanel(new BorderLayout());
p.add(p2, BorderLayout.NORTH);
p.add(component, BorderLayout.CENTER);
if(Configuration.lafTheme == LAFTheme.SYSTEM)
p2.add(getJMenuBar(), BorderLayout.CENTER);
else //TODO DarkLAF wont display the jMenuBar due to how it handles them, instead display the menu
//TODO make the menu interactable and display the menu manually
p2.add(getJMenuBar().getMenu(0), BorderLayout.CENTER);
JMenuBar menuBar = getJMenuBar();
// As the Darklaf windows decorations steal the menu bar from the frame
// it sets the preferred size to (0,0). Because we want to steal the menu bar ourselves.
// we have to revert this change.
// Remove when https://github.com/weisJ/darklaf/issues/258 is fixed and available in a
// release.
menuBar.setPreferredSize(null);
p2.add(menuBar, BorderLayout.CENTER);
ComponentViewer.addComponentAsTab(pluginName, p);
}
else

View File

@ -44,4 +44,10 @@ public class TranslatedJMenu extends JMenu
componentReference.translate();
}
}
@Override
public boolean isEnabled()
{
return super.isEnabled() && getMenuComponentCount() > 0;
}
}