mirror of
https://github.com/mirror/jdownloader.git
synced 2024-10-07 00:53:37 +00:00
Auto Column Width in some tables.
git-svn-id: svn://svn.jdownloader.org/jdownloader/trunk@31785 ebf7c1c2-ba36-0410-9fe8-c592906822b4 Former-commit-id: 10b074e288d8f3d1d0265b8c9120a3ad6687c9b5
This commit is contained in:
parent
5d0f2116a3
commit
c18fa657d7
@ -77,7 +77,7 @@
|
||||
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-http.jar"/>
|
||||
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-util.jar"/>
|
||||
<classpathentry kind="lib" path="ressourcen/libs/UPNP/seamless-xml.jar"/>
|
||||
<classpathentry kind="lib" path="/AppWorkUtils/libs/proxyVole.jar"/>
|
||||
<classpathentry kind="lib" path="/AppWorkUtils/libs/proxyVole.jar" sourcepath="/ProxyVole"/>
|
||||
<classpathentry kind="lib" path="ressourcen/libs/savemytube.jar"/>
|
||||
<classpathentry kind="lib" path="ressourcen/libs/htmlunit-core-js.jar"/>
|
||||
<classpathentry kind="lib" path="ressourcen/libs/js.jar"/>
|
||||
|
@ -114,7 +114,7 @@ import org.jdownloader.logging.LogController;
|
||||
import org.jdownloader.osevents.OperatingSystemEventSender;
|
||||
import org.jdownloader.plugins.controller.host.HostPluginController;
|
||||
import org.jdownloader.scripting.JSHtmlUnitPermissionRestricter;
|
||||
import org.jdownloader.scripting.JSPermissionRestricter;
|
||||
import org.jdownloader.scripting.JSRhinoPermissionRestricter;
|
||||
import org.jdownloader.settings.AutoDownloadStartOption;
|
||||
import org.jdownloader.settings.GeneralSettings;
|
||||
import org.jdownloader.settings.GraphicalUserInterfaceSettings;
|
||||
@ -129,6 +129,13 @@ import org.jdownloader.updatev2.InternetConnectionSettings;
|
||||
import org.jdownloader.updatev2.RestartController;
|
||||
import org.jdownloader.updatev2.gui.LAFOptions;
|
||||
|
||||
import com.btr.proxy.selector.pac.PACScriptEngineFactory;
|
||||
import com.btr.proxy.selector.pac.PacProxySelector;
|
||||
import com.btr.proxy.selector.pac.PacScriptParser;
|
||||
import com.btr.proxy.selector.pac.PacScriptSource;
|
||||
import com.btr.proxy.selector.pac.ProxyEvaluationException;
|
||||
import com.btr.proxy.selector.pac.RhinoPacScriptParser;
|
||||
|
||||
public class SecondLevelLaunch {
|
||||
static {
|
||||
statics();
|
||||
@ -310,9 +317,26 @@ public class SecondLevelLaunch {
|
||||
public static void mainStart(final String args[]) {
|
||||
SecondLevelLaunch.LOG = LogController.GL;
|
||||
/* setup JSPermission */
|
||||
|
||||
try {
|
||||
// Ensure that proxyVole uses Rhino and not the build-in engines.
|
||||
// Rhino is Sandboxed by JSRhinoPermissionRestricter
|
||||
PacProxySelector.SCRIPT_ENGINE_FACTORY = new PACScriptEngineFactory() {
|
||||
|
||||
@Override
|
||||
public PacScriptParser selectEngine(PacProxySelector selector, PacScriptSource pacSource) throws ProxyEvaluationException {
|
||||
|
||||
return new RhinoPacScriptParser(pacSource);
|
||||
|
||||
}
|
||||
};
|
||||
|
||||
} catch (final Throwable e) {
|
||||
SecondLevelLaunch.LOG.log(e);
|
||||
}
|
||||
try {
|
||||
|
||||
JSPermissionRestricter.init();
|
||||
JSRhinoPermissionRestricter.init();
|
||||
|
||||
} catch (final Throwable e) {
|
||||
SecondLevelLaunch.LOG.log(e);
|
||||
|
@ -32,14 +32,15 @@ import com.btr.proxy.selector.pac.UrlPacScriptSource;
|
||||
|
||||
public class PacProxySelectorImpl extends AbstractProxySelectorImpl {
|
||||
|
||||
private static final LogSource logger = LogController.getInstance().getLogger(PacProxySelectorImpl.class.getName());
|
||||
private static final LogSource logger = LogController.getInstance().getLogger(PacProxySelectorImpl.class.getName());
|
||||
|
||||
private volatile String pacUrl;
|
||||
private final HashMap<String, PacProxySelector> selectors = new HashMap<String, PacProxySelector>();
|
||||
private final AtomicLong latestValidation = new AtomicLong(-1);
|
||||
private final HashMap<String, HTTPProxy> cacheMap = new HashMap<String, HTTPProxy>();
|
||||
private final HashMap<String, String[]> tempAuthMap = new HashMap<String, String[]>();
|
||||
private boolean nativeProxy = false;
|
||||
private final HashMap<String, PacProxySelector> selectors = new HashMap<String, PacProxySelector>();
|
||||
private final AtomicLong latestValidation = new AtomicLong(-1);
|
||||
private final AtomicLong doNotValidateUntil = new AtomicLong(-1);
|
||||
private final HashMap<String, HTTPProxy> cacheMap = new HashMap<String, HTTPProxy>();
|
||||
private final HashMap<String, String[]> tempAuthMap = new HashMap<String, String[]>();
|
||||
private boolean nativeProxy = false;
|
||||
|
||||
public PacProxySelectorImpl(String url, String user, String pass) {
|
||||
if (!JsonConfig.create(InternetConnectionSettings.PATH, InternetConnectionSettings.class).isProxyVoleAutodetectionEnabled()) {
|
||||
@ -200,17 +201,27 @@ public class PacProxySelectorImpl extends AbstractProxySelectorImpl {
|
||||
} else {
|
||||
PacProxySelector selector = selectors.get(pacUrl);
|
||||
if (selector == null || System.currentTimeMillis() - latestValidation.get() > 15 * 60 * 1000l) {
|
||||
tempAuthMap.clear();
|
||||
cacheMap.clear();
|
||||
selectors.clear();
|
||||
latestValidation.set(-1);
|
||||
PacScriptSource pacSource = new UrlPacScriptSource(lPacURL);
|
||||
if (pacSource.isScriptValid()) {
|
||||
selector = new PacProxySelector(pacSource);
|
||||
latestValidation.set(System.currentTimeMillis());
|
||||
selectors.put(lPacURL, selector);
|
||||
} else {
|
||||
selector = null;
|
||||
if (doNotValidateUntil.get() < System.currentTimeMillis()) {
|
||||
tempAuthMap.clear();
|
||||
cacheMap.clear();
|
||||
selectors.clear();
|
||||
latestValidation.set(-1);
|
||||
|
||||
PacScriptSource pacSource = new UrlPacScriptSource(lPacURL);
|
||||
logger.info("Download PAC Script!");
|
||||
long t = System.currentTimeMillis();
|
||||
if (pacSource.isScriptValid()) {
|
||||
selector = new PacProxySelector(pacSource);
|
||||
latestValidation.set(System.currentTimeMillis());
|
||||
selectors.put(lPacURL, selector);
|
||||
} else {
|
||||
selector = null;
|
||||
if (System.currentTimeMillis() - t > 5000) {
|
||||
// Validation took to long (download/evaluation). lets ban it for 5 minutes
|
||||
doNotValidateUntil.set(System.currentTimeMillis() + 5 * 60 * 1000l);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
return selector;
|
||||
|
@ -34,14 +34,15 @@ import org.jdownloader.updatev2.gui.LAFOptions;
|
||||
|
||||
public class BasicJDTable<T> extends ExtTable<T> implements GenericConfigEventListener<Integer> {
|
||||
|
||||
private static final long serialVersionUID = -9181860215412270250L;
|
||||
protected int mouseOverRow = -1;
|
||||
private static final long serialVersionUID = -9181860215412270250L;
|
||||
protected int mouseOverRow = -1;
|
||||
private Color sortNotifyColor;
|
||||
private final boolean overwriteHorizontalLinesPossible;
|
||||
|
||||
private boolean showHorizontalLineBelowLastEntry = true;
|
||||
private boolean showHorizontalLineBelowLastEntry = true;
|
||||
|
||||
private boolean noRepaint = false;
|
||||
|
||||
private boolean noRepaint = false;
|
||||
public BasicJDTable(ExtTableModel<T> tableModel) {
|
||||
super(tableModel);
|
||||
this.setShowVerticalLines(true);
|
||||
@ -73,6 +74,7 @@ public class BasicJDTable<T> extends ExtTable<T> implements GenericConfigEventLi
|
||||
overwriteHorizontalLinesPossible = false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected void addSelectionHighlighter() {
|
||||
|
@ -52,6 +52,11 @@ public class SolverOrderTableModel extends ExtTableModel<SolverService> {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void autoColumnWidth() {
|
||||
super.autoColumnWidth();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void initColumns() {
|
||||
|
||||
@ -272,13 +277,18 @@ public class SolverOrderTableModel extends ExtTableModel<SolverService> {
|
||||
return ret;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAutoWidthEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isDefaultResizable() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
protected String generateID() {
|
||||
return "CaptchaOrderTable.timeoutbutton";
|
||||
return "CaptchaOrderTable.timeoutbutton3";
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -288,7 +298,7 @@ public class SolverOrderTableModel extends ExtTableModel<SolverService> {
|
||||
|
||||
@Override
|
||||
public int getDefaultWidth() {
|
||||
return 100;
|
||||
return 3;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -380,7 +390,12 @@ public class SolverOrderTableModel extends ExtTableModel<SolverService> {
|
||||
|
||||
@Override
|
||||
protected boolean isDefaultResizable() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAutoWidthEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -427,7 +442,7 @@ public class SolverOrderTableModel extends ExtTableModel<SolverService> {
|
||||
}
|
||||
|
||||
protected String generateID() {
|
||||
return "CaptchaOrderTable.editButton";
|
||||
return "CaptchaOrderTable.editButton2";
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -18,8 +18,8 @@ import org.jdownloader.images.NewTheme;
|
||||
public class OrderColumn extends ExtComponentColumn<AbstractProxySelectorImpl> {
|
||||
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 5932073061658364800L;
|
||||
private MigPanel renderer;
|
||||
private MigPanel editor;
|
||||
@ -46,8 +46,8 @@ public class OrderColumn extends ExtComponentColumn<AbstractProxySelectorImpl> {
|
||||
|
||||
editorUp = new ExtButton(new AppAction() {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = -6373308629670760194L;
|
||||
|
||||
{
|
||||
@ -65,8 +65,8 @@ public class OrderColumn extends ExtComponentColumn<AbstractProxySelectorImpl> {
|
||||
|
||||
editorDown = new ExtButton(new AppAction() {
|
||||
/**
|
||||
*
|
||||
*/
|
||||
*
|
||||
*/
|
||||
private static final long serialVersionUID = 359422892536364704L;
|
||||
|
||||
{
|
||||
|
@ -481,7 +481,7 @@ public class ProxyTableModel extends ExtTableModel<AbstractProxySelectorImpl> {
|
||||
|
||||
@Override
|
||||
protected boolean isDefaultResizable() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -489,11 +489,21 @@ public class ProxyTableModel extends ExtTableModel<AbstractProxySelectorImpl> {
|
||||
return 80;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAutoWidthEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSortable(final AbstractProxySelectorImpl obj) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String generateID() {
|
||||
return "ProxyTable.filter";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected JComponent getInternalEditorComponent(AbstractProxySelectorImpl value, boolean isSelected, int row, int column) {
|
||||
return editor;
|
||||
@ -586,9 +596,14 @@ public class ProxyTableModel extends ExtTableModel<AbstractProxySelectorImpl> {
|
||||
setClickcount(1);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected String generateID() {
|
||||
return "ProxyTable.problems";
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isDefaultResizable() {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -596,6 +611,11 @@ public class ProxyTableModel extends ExtTableModel<AbstractProxySelectorImpl> {
|
||||
return 80;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isAutoWidthEnabled() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isSortable(final AbstractProxySelectorImpl obj) {
|
||||
return false;
|
||||
|
@ -40,7 +40,7 @@ import jd.plugins.components.ThrowingRunnable;
|
||||
|
||||
import org.appwork.utils.reflection.Clazz;
|
||||
import org.jdownloader.scripting.JSHtmlUnitPermissionRestricter;
|
||||
import org.jdownloader.scripting.JSPermissionRestricter;
|
||||
import org.jdownloader.scripting.JSRhinoPermissionRestricter;
|
||||
import org.mozilla.javascript.ConsString;
|
||||
import org.mozilla.javascript.Context;
|
||||
import org.mozilla.javascript.Function;
|
||||
@ -1347,12 +1347,12 @@ public class DummyScriptEnginePlugin extends PluginForHost {
|
||||
|
||||
public static <T extends Exception> void runTrusted(ThrowingRunnable<T> runnable) throws T {
|
||||
try {
|
||||
JSPermissionRestricter.TRUSTED_THREAD.put(Thread.currentThread(), true);
|
||||
JSRhinoPermissionRestricter.TRUSTED_THREAD.put(Thread.currentThread(), true);
|
||||
JSHtmlUnitPermissionRestricter.TRUSTED_THREAD.put(Thread.currentThread(), true);
|
||||
runnable.run();
|
||||
} finally {
|
||||
JSHtmlUnitPermissionRestricter.TRUSTED_THREAD.remove(Thread.currentThread());
|
||||
JSPermissionRestricter.TRUSTED_THREAD.remove(Thread.currentThread());
|
||||
JSRhinoPermissionRestricter.TRUSTED_THREAD.remove(Thread.currentThread());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -99,7 +99,7 @@ import org.mozilla.javascript.tools.shell.Global;
|
||||
* @author thomas
|
||||
*
|
||||
*/
|
||||
public class JSPermissionRestricter {
|
||||
public class JSRhinoPermissionRestricter {
|
||||
static public class SandboxContextFactory extends ContextFactory {
|
||||
|
||||
static public class MyContext extends Context {
|
Loading…
Reference in New Issue
Block a user