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:
coalado 2015-10-12 13:28:44 +00:00
parent 5d0f2116a3
commit c18fa657d7
9 changed files with 113 additions and 41 deletions

View File

@ -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"/>

View File

@ -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);

View File

@ -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;

View File

@ -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() {

View File

@ -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

View File

@ -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;
{

View File

@ -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;

View File

@ -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());
}
}

View File

@ -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 {