| /* |
| * |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| * |
| */ |
| |
| package flex2.linker; |
| |
| import flash.swf.Movie; |
| |
| /** |
| * Represents a simple single frame Movie. It's currently not |
| * instantiated directly. Instead, it's subclasses for special |
| * purposes like an application SWF or a library SWF. |
| * |
| * @author Clement Wong |
| */ |
| public class SimpleMovie extends Movie |
| { |
| /** |
| * MD5 password is no longer needed for Flash Player. |
| * Use this dummy password instead of generating one. |
| * @see http://bugs.adobe.com/jira/browse/SDK-27210 |
| */ |
| //private static final String NO_PASSWORD = "NO-PASSWORD"; |
| |
| public SimpleMovie(LinkerConfiguration configuration) |
| { |
| /* |
| if (configuration.width() != null) |
| { |
| try |
| { |
| width = Integer.parseInt(configuration.width()); |
| } |
| catch(NumberFormatException nfe) |
| { |
| ThreadLocalToolkit.log(new PreLink.CouldNotParseNumber(configuration.width(), "width")); |
| } |
| userSpecifiedWidth = true; |
| } |
| else if (configuration.widthPercent() != null) |
| { |
| width = configuration.defaultWidth(); |
| widthPercent = configuration.widthPercent(); |
| } |
| else |
| { |
| width = configuration.defaultWidth(); |
| } |
| |
| if (configuration.height() != null) |
| { |
| try |
| { |
| height = Integer.parseInt(configuration.height()); |
| } |
| catch(NumberFormatException nfe) |
| { |
| ThreadLocalToolkit.log(new PreLink.CouldNotParseNumber(configuration.height(), "height")); |
| } |
| userSpecifiedHeight = true; |
| } |
| else if (configuration.heightPercent() != null) |
| { |
| height = configuration.defaultHeight(); |
| heightPercent = configuration.heightPercent(); |
| } |
| else |
| { |
| height = configuration.defaultHeight(); |
| } |
| |
| size = new Rect(width * 20, height * 20); |
| |
| if ((configuration.scriptLimitsSet())) |
| { |
| scriptLimits = new ScriptLimits( configuration.getScriptRecursionLimit(), |
| configuration.getScriptTimeLimit() ); |
| } |
| |
| framerate = configuration.getFrameRate(); |
| version = configuration.getSwfVersion(); |
| bgcolor = new SetBackgroundColor(configuration.backgroundColor()); |
| if (configuration.debug()) |
| { |
| enableDebugger = new EnableDebugger(NO_PASSWORD); |
| uuid = new FlashUUID(); |
| } |
| |
| // SWF 8 File Attributes Support |
| if (version >= 8) |
| { |
| fileAttributes = new FileAttributes(); |
| enableTelemetry = new EnableTelemetry(); |
| fileAttributes.actionScript3 = (version >= 9); |
| |
| if (configuration.useNetwork()) |
| { |
| fileAttributes.useNetwork = true; |
| fileAttributes.actionScript3 = (version >= 9); |
| } |
| |
| if (configuration.getAdvancedTelemetry()) { |
| enableTelemetry.enabled = true; |
| } |
| |
| fileAttributes.useDirectBlit = configuration.getUseDirectBlit(); |
| fileAttributes.useGPU = configuration.getUseGpu(); |
| |
| String metadataStr = configuration.getMetadata(); |
| if (metadataStr != null) |
| { |
| metadata = new Metadata(); |
| metadata.xml = metadataStr; |
| fileAttributes.hasMetadata = true; |
| } |
| } |
| |
| long build = 0; |
| byte majorVersion = 0; |
| byte minorVersion = 0; |
| |
| try |
| { |
| majorVersion = (byte)Integer.parseInt(VersionInfo.FLEX_MAJOR_VERSION); |
| minorVersion = (byte)Integer.parseInt(VersionInfo.FLEX_MINOR_VERSION); |
| build = Long.parseLong( VersionInfo.getBuild() ); |
| } |
| catch (NumberFormatException numberFormatException) |
| { |
| // preilly: for now just ignore empty or bogus build numbers. |
| } |
| |
| |
| productInfo = new ProductInfo(ProductInfo.ABOBE_FLEX_PRODUCT, 6, |
| majorVersion, minorVersion, build, |
| System.currentTimeMillis()); |
| pageTitle = configuration.pageTitle(); |
| |
| lazyInit = configuration.lazyInit(); |
| rootClassName = formatSymbolClassName( configuration.getRootClassName() ); |
| |
| if (rootClassName == null) |
| rootClassName = formatSymbolClassName( configuration.getMainDefinition() ); |
| |
| exportedUnits = new LinkedHashMap<CompilationUnit, Frame>(); |
| |
| includeInheritanceDependenciesOnly = configuration.getIncludeInheritanceDependenciesOnly(); |
| */ |
| } |
| |
| protected String linkReport, sizeReport; |
| |
| public String getLinkReport() |
| { |
| return linkReport; |
| } |
| |
| public String getSizeReport() |
| { |
| return sizeReport; |
| } |
| |
| public void setSizeReport(String report) |
| { |
| sizeReport = report; |
| } |
| |
| /* |
| public String getRBList() |
| { |
| return rbList; |
| } |
| |
| public boolean getInheritanceDependenciesOnly() |
| { |
| return includeInheritanceDependenciesOnly; |
| } |
| */ |
| } |