[e-cvs] cvs commit: e/src/jsrc/org/quasiliteral/term Functor.java
markm@eros.cs.jhu.edu
markm@eros.cs.jhu.edu
Sat, 10 Nov 2001 14:40:54 -0500
markm 01/11/10 14:40:53
Modified: src/esrc/com/skyhunter/e/lang
runConfinedSourceFuncAuthor.emaker
sourceRunnerAuthor.emaker
src/esrc/com/skyhunter/e/net vowToolsMaker.emaker
src/esrc/com/skyhunter/e/security
oldPowerboxControllerMakerAuthor.emaker
powerBoxControllerMakerAuthorTester.e
powerboxControllerMakerAuthor.emaker
src/esrc/com/skyhunter/e/util domFromTextFunc.emaker
domTreeKit.emaker extractChildNodesFunc.emaker
mapDomText.emaker mapDomTextFunc.emaker
testDomTreeKit.e timer.e
src/esrc/com/skyhunter/eDesk capLauncherAuthor.emaker
installedAppsManagerMaker.emaker
navPanelControllerMakerAuthor.emaker
progressWindowMakerAuthor.emaker
serverDescVowAuthor.emaker
src/esrc/com/skyhunter/eDesk/icons folder.gif
src/esrc/com/skyhunter/ex/swing capFrameMakerAuthor.emaker
dialogVowMakerAuthor.emaker
standardWindowMakerAuthor.emaker
src/esrc/com/skyhunter/installer
agreedCapsPetsVowMakerAuthor.emaker
persistentInstallerAuthor.emaker
stringDataKit.emaker testAgreedCapsVow.e
src/esrc/org/erights/e/tools/text abbrev.emaker
src/esrc/scripts eBrowser.e
src/jsrc/net/ertp Assay.java
InsufficientERightsException.java Issuer.java
src/jsrc/net/vattp/data AuthSecrets.java
ConnectionAttemptFailed.java
ConnectionShutDownException.java DES.java
DataCommThunk.java DataPath.java Decrypt3DES.java
EARL.java Encrypt3DES.java ListenThread.java
Msg.java MsgTransformer.java NetAddr.java
NetConfig.java RecvThread.java SendThread.java
StartUpProtocol.java StreamMessage.java
Suspend.java TripleDESKeyConstructor.java
UserThread.java VatIdentity.java
VatTPConnection.java
src/jsrc/org/erights/build EYaccFixer.java
src/jsrc/org/erights/e/develop/assertion Assertion.java
AssertionFailed.java
src/jsrc/org/erights/e/develop/exception ExceptionMgr.java
ExceptionNoticer.java NestedError.java
NestedException.java NestedIOException.java
PrintStreamWriter.java ThrowableSugar.java
src/jsrc/org/erights/e/develop/format ETimeFormat.java
StringHelper.java
src/jsrc/org/erights/e/develop/trace Trace.java
TraceBuffer.java TraceCaller.java
TraceConstants.java TraceController.java
TraceDateToString.java TraceLevelTranslator.java
TraceLog.java TraceLogDescriptor.java
TraceMessage.java TraceMessageAcceptor.java
TraceMessageStringifier.java
TraceSubsystemMediator.java
TraceTxtVersionNamer.java TraceVersionNamer.java
src/jsrc/org/erights/e/elang/evm AssignExpr.java
CallExpr.java CatchExpr.java CdrPattern.java
DefineExpr.java EExpr.java EImpl.java
EImplByProxy.java EMeta.java EMethod.java
EMethodNode.java ENode.java EScript.java
EscapeExpr.java FinalPattern.java FinallyExpr.java
FrameFinalNounExpr.java FrameSlotNounExpr.java
HideExpr.java IfExpr.java IgnorePattern.java
ListPattern.java LiteralExpr.java
LiteralNounExpr.java LiteralSlotNounExpr.java
LocalFinalNounExpr.java LocalSlotNounExpr.java
MatchBindExpr.java Matcher.java MetaExpr.java
NounExpr.java NounPattern.java ObjectExpr.java
OuterNounExpr.java Pattern.java
QuasiLiteralExpr.java QuasiLiteralPatt.java
QuasiPatternExpr.java QuasiPatternPatt.java
ScopeExpr.java SendExpr.java SeqExpr.java
SlotExpr.java StaticScope.java SuchThatPattern.java
VarPattern.java
src/jsrc/org/erights/e/elang/interp Help.java
InteractiveInterp.java Interp.java
LazyEvalSlot.java Loader.java LoaderScope.java
Loop.java PackageScope.java ProtocolDesc.java
ResourceUriGetter.java ScopeSetup.java
URLGetter.java UnsafeLoaderScope.java
src/jsrc/org/erights/e/elang/scope EvalContext.java
InnerScope.java OuterScope.java Scope.java
ScopeMap.java UndefinedVariableException.java
src/jsrc/org/erights/e/elang/syntax Assoc.java EBuilder.java
ELexer.java EParser.java FileFeeder.java
HilbertHotel.java Indenter.java LineFeeder.java
MsgPatt.java NeedMoreException.java
PrettyFeeder.java QuasiFeeder.java
SyntaxException.java TwineFeeder.java URI.java
src/jsrc/org/erights/e/elang/visitors
AlphaRenameVisitor.java BindFramesVisitor.java
CopyVisitor.java ETreeVisitor.java
RenameVisitor.java
src/jsrc/org/erights/e/elib/base ClassDesc.java
Ejection.java Ejector.java MessageDesc.java
MethodNode.java ParamDesc.java ParseNode.java
SourceSpan.java TypeDesc.java
src/jsrc/org/erights/e/elib/deflect Deflector.java
src/jsrc/org/erights/e/elib/eio NonBlockingInputStream.java
TextReader.java TextWriter.java
src/jsrc/org/erights/e/elib/prim BERunner.java
CallThunk.java ConstructorNode.java E.java
FEProblemHandler.java FERunner.java
FERunnerEvent.java InstanceMethodNode.java
JavaMemberNode.java Message.java
MirandaMethods.java NowRunnable.java
OverloaderNode.java PendingEvent.java Queue.java
Runner.java RunnerThread.java
SacrificialComponent.java ScriptMaker.java
ShutDownVatException.java StaticMaker.java
StaticMethodNode.java SugarMethodNode.java
SynchQueue.java Thrower.java VTable.java
VarGetterNode.java VarSetterNode.java WeakPtr.java
WeakPtrThread.java
src/jsrc/org/erights/e/elib/prim/tests A.java ERunDemo.java
src/jsrc/org/erights/e/elib/quasi Identifiers.java
IncompleteQuasiException.java MatchMaker.java
SimpleQuasiParser.java Substituter.java
src/jsrc/org/erights/e/elib/ref BufferingRef.java
DisconnectedRef.java ExternalRef.java FarRef.java
LocalResolver.java NearRef.java
OneArgFuncAdapter.java Proxy.java
ProxyResolver.java Ref.java RemotePromise.java
ResultResolver.java SlotRef.java StemCell.java
SwitchableRef.java UnconnectedRef.java
ViciousCycleException.java WhenBrokenReactor.java
WhenResolvedReactor.java
src/jsrc/org/erights/e/elib/sealing Unsealer.java
UnsealingException.java
src/jsrc/org/erights/e/elib/serial PassByConstruction.java
PassByConstructionGuard.java PassByProxy.java
PassByProxyGuard.java PersistenceReplacer.java
PersistenceResolver.java Persistent.java
RemoteCall.java RemoteDelivery.java Serializer.java
Unserializer.java
src/jsrc/org/erights/e/elib/slot FinalSlotMaker.java
NullOkMaker.java RuinedSlot.java SettableSlot.java
SettableSlotMaker.java SimpleSlot.java
SimpleSlotMaker.java SlotDefiner.java
VoidMaker.java
src/jsrc/org/erights/e/elib/tables ArrayedList.java
AtomicTwine.java Column.java CompositeTwine.java
ConstList.java ConstListImpl.java ConstMap.java
ConstMapImpl.java CycleBreaker.java EList.java
EMap.java EmptyTwine.java EqualityKeyColumn.java
Equalizer.java FlexList.java FlexListImpl.java
FlexMap.java FlexMapImpl.java
IdentityCacheTable.java IdentityKeyColumn.java
IdentityMap.java IndirectCompFunc.java
IntColumn.java IntTable.java KeyColumn.java
LocatedTwine.java NotSettledException.java
ROList.java ROMap.java RefColumn.java
SamenessKeyColumn.java ScalarColumn.java
Selfless.java ShareCount.java SimpleCompFunc.java
SimpleTwine.java Twine.java VoidColumn.java
WeakKey.java WeakKeyMap.java WeakValue.java
WeakValueMap.java
src/jsrc/org/erights/e/elib/tests TestELib.java
TestMultiQ.java TestMultiQMain.java
src/jsrc/org/erights/e/elib/util
AlreadyDefinedException.java
ArityMismatchException.java ClassCache.java
ConditionLock.java DynamicCollection.java
DynamicCollectionEnumeration.java
HexStringUtils.java IdentityFunc.java
TwineException.java
src/jsrc/org/erights/e/extern/file ConsoleMaker.java
ConsoleThread.java
src/jsrc/org/erights/e/extern/timer Clock.java Timeout.java
Timer.java TimerQEntry.java TimerThread.java
TimerWatcher.java
src/jsrc/org/erights/e/meta/java/awt ComponentSugar.java
ContainerSugar.java
src/jsrc/org/erights/e/meta/java/awt/event
WindowEventSugar.java
src/jsrc/org/erights/e/meta/java/io BufferedReaderSugar.java
FileGetter.java FileSugar.java
InputStreamSugar.java ReadOnlyFile.java
ReaderSugar.java
src/jsrc/org/erights/e/meta/java/lang BooleanSugar.java
Bufferer.java ByteGuardSugar.java
CharacterSugar.java DoubleGuardSugar.java
DoubleSugar.java FloatGuardSugar.java
IntegerGuardSugar.java LongGuardSugar.java
ProcessSugar.java ShortGuardSugar.java
StringBufferSugar.java ThrowableGuardSugar.java
VoidGuardSugar.java
src/jsrc/org/erights/e/meta/java/math
BigIntegerGuardSugar.java BigIntegerMakerSugar.java
BigIntegerSugar.java
src/jsrc/org/erights/e/meta/java/net URLSugar.java
src/jsrc/org/erights/e/meta/java/util DictionarySugar.java
EnumerationSugar.java VectorSugar.java
src/jsrc/org/erights/e/ui/elmer EInterpAdapter.java
ElmerMain.java
src/jsrc/org/erights/e/ui/jed BrickLayer.java EAction.java
EActionListener.java EDismissListener.java
EItemListener.java EMenuBar.java
ETextChangedListener.java EditGroup.java
JedMain.java
src/jsrc/org/quasiliteral/astro Astro.java
AstroLexerSharedInputState.java AstroToken.java
src/jsrc/org/quasiliteral/term Functor.java
Added: src/esrc/com/skyhunter/e/icons backArrow.gif fileOpen.gif
folder.gif forwardArrow.gif help.gif
lightning16x16.gif magnify.gif print2.gif stop.gif
text16x16.gif upArrow.gif webpage16x16.gif
src/esrc/com/skyhunter/eDesk/icons folderOld.gif
Removed: src/esrc/com/skyhunter/e/security capWTMakerAuthorOld.emaker
src/esrc/com/skyhunter/eBrowser analyzeOutlineFunc.emaker
outlineAnalyzer.emaker
src/esrc/com/skyhunter/eBrowser/ebScripts countLines.emaker
indentSpaces.emaker indentTabs.emaker
src/esrc/com/skyhunter/eDesk quickEditMakerAuthor.emaker
src/esrc/com/skyhunter/eDeskPlus capLauncherAuthor.emaker
progressWindowMakerAuthor.emaker
quickEditMakerAuthor.emaker
src/esrc/com/skyhunter/eDeskPlus/icons goto.gif home.gif
refresh.gif up.gif
src/esrc/com/skyhunter/eDeskPlus/strings about.txt help.txt
src/esrc/com/skyhunter/ex/swing dialogPromiserAuthor.emaker
dialogPromiserAuthorOld.emaker
src/esrc/com/skyhunter/installer
agreedCapPromiserAuthorTester.e
agreedCapVowMakerAuthorTest.e
agreedCapsXMLPromiserAuthor.emaker
src/esrc/com/skyhunter/testCaplet
helloWorldCapletAuthor.caplet
helloWorldCapletAuthor.emaker
helloWorldCapletPlusAuthor.emaker
helloWorldPlusTester.e helloWorldTester.e
testCapletAuthor.emaker testLauncher.e
testLauncherOld.e
Log:
tabs, reformatting, little things
Revision Changes Path
1.1 e/src/esrc/com/skyhunter/e/icons/backArrow.gif
Index: backArrow.gif
===================================================================
GIF89a
(P
1.1 e/src/esrc/com/skyhunter/e/icons/fileOpen.gif
Index: fileOpen.gif
===================================================================
GIF89a
1.1 e/src/esrc/com/skyhunter/e/icons/folder.gif
Index: folder.gif
===================================================================
GIF89a
(P
(p
8P
(p
(p
1.1 e/src/esrc/com/skyhunter/e/icons/forwardArrow.gif
Index: forwardArrow.gif
===================================================================
GIF89a
(P@
(
1.1 e/src/esrc/com/skyhunter/e/icons/help.gif
Index: help.gif
===================================================================
GIF89a
1.1 e/src/esrc/com/skyhunter/e/icons/lightning16x16.gif
Index: lightning16x16.gif
===================================================================
GIF89a
P
$(
$H
$
1.1 e/src/esrc/com/skyhunter/e/icons/magnify.gif
Index: magnify.gif
===================================================================
GIF89a
1.1 e/src/esrc/com/skyhunter/e/icons/print2.gif
Index: print2.gif
===================================================================
GIF89a
1.1 e/src/esrc/com/skyhunter/e/icons/stop.gif
Index: stop.gif
===================================================================
GIF89a
8p
(
(P @
1.1 e/src/esrc/com/skyhunter/e/icons/text16x16.gif
Index: text16x16.gif
===================================================================
GIF89a
1.1 e/src/esrc/com/skyhunter/e/icons/upArrow.gif
Index: upArrow.gif
===================================================================
GIF89a
1.1 e/src/esrc/com/skyhunter/e/icons/webpage16x16.gif
Index: webpage16x16.gif
===================================================================
GIF89a
(P@
1.2 +29 -29 e/src/esrc/com/skyhunter/e/lang/runConfinedSourceFuncAuthor.emaker
Index: runConfinedSourceFuncAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/lang/runConfinedSourceFuncAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- runConfinedSourceFuncAuthor.emaker 2001/09/12 00:01:50 1.1
+++ runConfinedSourceFuncAuthor.emaker 2001/11/10 19:40:35 1.2
@@ -1,33 +1,33 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def sourceRunnerAuthor(unsafe__uriGetter, interp, traceln, stdout) :near {
- def runSource(sourceText) :near {
- def interpret() :any {
- traceln("starting run prep")
- def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
- var scope := ScopeSetupMaker universal()
- def subInterp {
- to blockAtTop() {
- # ignored
- }
- to continueAtTop() {
- # ignored
- }
- delegate { interp }
- }
- scope := scope sprout() bindFinal("interp", subInterp)
- traceln("made scope 2")
- try {
- def tree := e__quasiParser(sourceText)
- def result := tree eval(scope newPov())
- traceln("\n# value: " + result)
- traceln("shown")
- result
- } catch problem {
- traceln("\n# problem: " + problem)
- traceln("problem shown")
- }
- }
- interpret()
- }
+ def runSource(sourceText) :near {
+ def interpret() :any {
+ traceln("starting run prep")
+ def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
+ var scope := ScopeSetupMaker universal()
+ def subInterp {
+ to blockAtTop() {
+ # ignored
+ }
+ to continueAtTop() {
+ # ignored
+ }
+ delegate { interp }
+ }
+ scope := scope sprout() bindFinal("interp", subInterp)
+ traceln("made scope 2")
+ try {
+ def tree := e__quasiParser(sourceText)
+ def result := tree eval(scope newPov())
+ traceln("\n# value: " + result)
+ traceln("shown")
+ result
+ } catch problem {
+ traceln("\n# problem: " + problem)
+ traceln("problem shown")
+ }
+ }
+ interpret()
+ }
}
1.3 +29 -29 e/src/esrc/com/skyhunter/e/lang/sourceRunnerAuthor.emaker
Index: sourceRunnerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/lang/sourceRunnerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- sourceRunnerAuthor.emaker 2001/09/12 00:01:50 1.2
+++ sourceRunnerAuthor.emaker 2001/11/10 19:40:35 1.3
@@ -1,33 +1,33 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def sourceRunnerAuthor(unsafe__uriGetter, interp, traceln, stdout) :near {
- def runSource(sourceText) :near {
- def interpret() :any {
- traceln("starting run prep")
- def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
- var scope := ScopeSetupMaker privileged(false, stdout, stdout, interp)
- def subInterp {
- to blockAtTop() {
- # ignored
- }
- to continueAtTop() {
- # ignored
- }
- delegate { interp }
- }
- scope := scope sprout() bindFinal("interp", subInterp)
- traceln("made scope 2")
- try {
- def tree := e__quasiParser(sourceText)
- def result := tree eval(scope newPov())
- traceln("\n# value: " + result)
- traceln("shown")
- result
- } catch problem {
- traceln("\n# problem: " + problem)
- traceln("problem shown")
- }
- }
- interpret()
- }
+ def runSource(sourceText) :near {
+ def interpret() :any {
+ traceln("starting run prep")
+ def ScopeSetupMaker := <unsafe:org.erights.e.elang.interp.ScopeSetup>
+ var scope := ScopeSetupMaker privileged(false, stdout, stdout, interp)
+ def subInterp {
+ to blockAtTop() {
+ # ignored
+ }
+ to continueAtTop() {
+ # ignored
+ }
+ delegate { interp }
+ }
+ scope := scope sprout() bindFinal("interp", subInterp)
+ traceln("made scope 2")
+ try {
+ def tree := e__quasiParser(sourceText)
+ def result := tree eval(scope newPov())
+ traceln("\n# value: " + result)
+ traceln("shown")
+ result
+ } catch problem {
+ traceln("\n# problem: " + problem)
+ traceln("problem shown")
+ }
+ }
+ interpret()
+ }
}
1.7 +94 -94 e/src/esrc/com/skyhunter/e/net/vowToolsMaker.emaker
Index: vowToolsMaker.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/net/vowToolsMaker.emaker,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- vowToolsMaker.emaker 2001/09/12 00:01:50 1.6
+++ vowToolsMaker.emaker 2001/11/10 19:40:35 1.7
@@ -1,97 +1,97 @@
class vowToolsMaker() :any {
- def vowTools {
- # Send a list of promises, this will return a
- # promise that will be fulfilled when all
- # the promises in the list have resolved one
- # way or the other. If any break, the allDone
- # promise is smashed, with a list of the error
- # messages, else it returns true.
- # Some day, this should return a list of all the
- # resolutions, with a smash if any of the promises
- # were broken on delivery.
- to promiseAllDone(thePromiseList) :any {
- # resolves after all in list resolved, returns true if all promises fulfilled
- def [resolutionPromise,resolver] := PromiseMaker()
- def promiseCount := thePromiseList size
- define breakMessages := ""
- if (promiseCount == 0) {resolver resolve(true)}
- for each in thePromiseList {
- each <- whenResolved(def obs(result) {
- if (E isBroken(result)) {breakMessages += " :" +result}
- promiseCount -= 1
- if (promiseCount == 0) {
- if (breakMessages size == 0) {
- resolver resolve(true)
- } else {
- resolver smash(breakMessages)
- }
- }
- })
- }
- resolutionPromise
- }
- # A vowsMonitor is an upscale promiseAllDone, collecting the
- # promise list, the promise of completion, and the finishing
- # process in a single object, making it convenient to pass
- # around to various objects that must add a promise to the
- # list and be informed when the list is finished.
- # Add the promises one at a time to the vowsMonitor,
- # get the promise of the finish when you want it
- # and initiate the monitoring for completion by requesting
- # a finishAll. Adding promises after the finishAll has been
- # requested is currently an undetected error.
- to makeVowsMonitor :any {
- def [bundlePromise,resolver] := PromiseMaker()
- def bundle := [] diverge
- def vowsMonitor {
- to add (thePromise) {bundle push(thePromise)}
- to finishAll {resolver resolve(netTools promiseAllDone(bundle))}
- to promiseFinish :any {bundlePromise}
- }
- }
- # Only More Recent Manager:
- # If you send out multiple requests over time,
- # resulting in receiving multiple promises also strewn over time,
- # and if you are only interested
- # in the answer if the answer is more recent
- # than the most recent of the already-fulfilled promises
- # (i.e., only if
- # the answer is newer than what you currently have),
- # and if you are not absolutely sure that all the
- # requests will move through a
- # guaranteed sequence on a single vat,
- # use an onlyMoreRecent object: add the promise
- # to the onlyMoreRecent when you receive it, and use the promise returned from that operation in
- # your when clause. If
- # a newer promise gets fulfilled before an older promise, the older promise is smashed with an "Obsolete Data"
- # error when it finally resolves.
- # If a newest promise returns smashed, the promise from onlyMostRecent also is returned smashed,
- # but with the error object it got from the
- # original promise.
- to makeOnlyMoreRecentAcceptor :any {
- def obsoleteError := "Obsolete Data"
- def mostRecentlyFulfilledIndex := 0
- def nextPromiseIndex := 1
- def onlyMoreRecent {
- to promiseMoreRecent(nextPromise) :any {
- def [onlyMoreRecentPromise,resolver] := PromiseMaker()
- def thisPromiseIndex := nextPromiseIndex
- nextPromiseIndex += 1
- when (nextPromise) -> done(resolution) {
- if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
- resolver resolve(resolution)
- mostRecentlyFulfilledIndex := thisPromiseIndex
- } else { resolver smash(obsoleteError) }
- } catch e {
- if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
- resolver smash(e)
- mostRecentlyFulfilledIndex := thisPromiseIndex
- } else { resolver smash(obsoleteError) }
- }
- onlyMoreRecentPromise
- }
- }
- }
- }
+ def vowTools {
+ # Send a list of promises, this will return a
+ # promise that will be fulfilled when all
+ # the promises in the list have resolved one
+ # way or the other. If any break, the allDone
+ # promise is smashed, with a list of the error
+ # messages, else it returns true.
+ # Some day, this should return a list of all the
+ # resolutions, with a smash if any of the promises
+ # were broken on delivery.
+ to promiseAllDone(thePromiseList) :any {
+ # resolves after all in list resolved, returns true if all promises fulfilled
+ def [resolutionPromise,resolver] := PromiseMaker()
+ def promiseCount := thePromiseList size
+ define breakMessages := ""
+ if (promiseCount == 0) {resolver resolve(true)}
+ for each in thePromiseList {
+ each <- whenResolved(def obs(result) {
+ if (E isBroken(result)) {breakMessages += " :" +result}
+ promiseCount -= 1
+ if (promiseCount == 0) {
+ if (breakMessages size == 0) {
+ resolver resolve(true)
+ } else {
+ resolver smash(breakMessages)
+ }
+ }
+ })
+ }
+ resolutionPromise
+ }
+ # A vowsMonitor is an upscale promiseAllDone, collecting the
+ # promise list, the promise of completion, and the finishing
+ # process in a single object, making it convenient to pass
+ # around to various objects that must add a promise to the
+ # list and be informed when the list is finished.
+ # Add the promises one at a time to the vowsMonitor,
+ # get the promise of the finish when you want it
+ # and initiate the monitoring for completion by requesting
+ # a finishAll. Adding promises after the finishAll has been
+ # requested is currently an undetected error.
+ to makeVowsMonitor :any {
+ def [bundlePromise,resolver] := PromiseMaker()
+ def bundle := [] diverge
+ def vowsMonitor {
+ to add (thePromise) {bundle push(thePromise)}
+ to finishAll {resolver resolve(netTools promiseAllDone(bundle))}
+ to promiseFinish :any {bundlePromise}
+ }
+ }
+ # Only More Recent Manager:
+ # If you send out multiple requests over time,
+ # resulting in receiving multiple promises also strewn over time,
+ # and if you are only interested
+ # in the answer if the answer is more recent
+ # than the most recent of the already-fulfilled promises
+ # (i.e., only if
+ # the answer is newer than what you currently have),
+ # and if you are not absolutely sure that all the
+ # requests will move through a
+ # guaranteed sequence on a single vat,
+ # use an onlyMoreRecent object: add the promise
+ # to the onlyMoreRecent when you receive it, and use the promise returned from that operation in
+ # your when clause. If
+ # a newer promise gets fulfilled before an older promise, the older promise is smashed with an "Obsolete Data"
+ # error when it finally resolves.
+ # If a newest promise returns smashed, the promise from onlyMostRecent also is returned smashed,
+ # but with the error object it got from the
+ # original promise.
+ to makeOnlyMoreRecentAcceptor :any {
+ def obsoleteError := "Obsolete Data"
+ def mostRecentlyFulfilledIndex := 0
+ def nextPromiseIndex := 1
+ def onlyMoreRecent {
+ to promiseMoreRecent(nextPromise) :any {
+ def [onlyMoreRecentPromise,resolver] := PromiseMaker()
+ def thisPromiseIndex := nextPromiseIndex
+ nextPromiseIndex += 1
+ when (nextPromise) -> done(resolution) {
+ if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
+ resolver resolve(resolution)
+ mostRecentlyFulfilledIndex := thisPromiseIndex
+ } else { resolver smash(obsoleteError) }
+ } catch e {
+ if (thisPromiseIndex > mostRecentlyFulfilledIndex) {
+ resolver smash(e)
+ mostRecentlyFulfilledIndex := thisPromiseIndex
+ } else { resolver smash(obsoleteError) }
+ }
+ onlyMoreRecentPromise
+ }
+ }
+ }
+ }
}
1.3 +22 -22 e/src/esrc/com/skyhunter/e/security/oldPowerboxControllerMakerAuthor.emaker
Index: oldPowerboxControllerMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/security/oldPowerboxControllerMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- oldPowerboxControllerMakerAuthor.emaker 2001/09/12 00:01:50 1.2
+++ oldPowerboxControllerMakerAuthor.emaker 2001/11/10 19:40:36 1.3
@@ -2,9 +2,9 @@
def powerboxControllerMakerAuthor(unsafe__uriGetter, file__uriGetter, resource__uriGetter, JPanel__quasiParser) :near {
def uiKit := <import:com.skyhunter.ex.swing.uiToolsAuthor>(
<unsafe:java.awt.*>, <unsafe:javax.swing.*>)
- var stdErr := ""
+ var stdErr := ""
def confinedRunner(sourceTwine) :any {
- stdErr := ""
+ stdErr := ""
def traceln(text) {stdErr := `$stdErr $text ${"<br>\n"}`}
traceln("in confined runner, about to interpret")
def interpret() :any {
@@ -24,7 +24,7 @@
} catch problem {
traceln(`Error: ${"\n"}$problem`)
result := stdErr
- throw
+ throw
}
result
}
@@ -46,11 +46,11 @@
to requestBaseCapabilityVow(capName,justification) :any {}
//general capability pops drag/drop dialog
to requestCapabilityVow(capName, justification) :any {}
- to getCapWT() :near {
- def makerAuthor := <import:com.skyhunter.e.security.capWTMakerAuthor>
- def maker := makerAuthor(<unsafe:java.awt.*>, <unsafe:javax.swing.*>, JPanel__quasiParser)
- maker new(appImage, appTitle, powerbox)
- }
+ to getCapWT() :near {
+ def makerAuthor := <import:com.skyhunter.e.security.capWTMakerAuthor>
+ def maker := makerAuthor(<unsafe:java.awt.*>, <unsafe:javax.swing.*>, JPanel__quasiParser)
+ maker new(appImage, appTitle, powerbox)
+ }
}
def powerboxController {
to getPowerbox() :near {powerbox}
@@ -75,20 +75,20 @@
}
}
def launchCaplet(source) :near {
- try {
- def maker := confinedRunner(source)
- maker new(powerbox)
- } catch err {
- powerbox getCapWT() getDialogPromiser() new(
- "Caplet failed",
- `<html>Program runner trace: <br>
- $stdErr <br>
- Caplet execution output: <br>
- $err`,
- null,
- ["OK"])
- }
-
+ try {
+ def maker := confinedRunner(source)
+ maker new(powerbox)
+ } catch err {
+ powerbox getCapWT() getDialogPromiser() new(
+ "Caplet failed",
+ `<html>Program runner trace: <br>
+ $stdErr <br>
+ Caplet execution output: <br>
+ $err`,
+ null,
+ ["OK"])
+ }
+
}
def bind caplet := launchCaplet(capletSource)
powerboxController
1.3 +20 -20 e/src/esrc/com/skyhunter/e/security/powerBoxControllerMakerAuthorTester.e
Index: powerBoxControllerMakerAuthorTester.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/security/powerBoxControllerMakerAuthorTester.e,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- powerBoxControllerMakerAuthorTester.e 2001/09/12 00:01:50 1.2
+++ powerBoxControllerMakerAuthorTester.e 2001/11/10 19:40:36 1.3
@@ -3,20 +3,20 @@
def traceln := println
def controllerMaker := <import:com.skyhunter.e.security.powerboxControllerMakerAuthor> run(
- unsafe__uriGetter, file__uriGetter, interp, traceln, stdout)
+ unsafe__uriGetter, file__uriGetter, interp, traceln, stdout)
traceln("created controller")
def testCapletAuthor := <import:com.skyhunter.testCaplet.testCapletAuthor>
traceln("created testcaplet author")
def testAuthor(powerbox,b,c) :any {
- def test {
- to start() {
- def traceln := powerbox optCap(powerbox TRACELN())
- traceln("traced external caplet worked")
- }
- }
- test start()
- test
+ def test {
+ to start() {
+ def traceln := powerbox optCap(powerbox TRACELN())
+ traceln("traced external caplet worked")
+ }
+ }
+ test start()
+ test
}
traceln("created testAuthor")
@@ -24,7 +24,7 @@
#test when caplet external
def extController := controllerMaker new(null, "Test External Caplet",null, "<caps></caps>")
println("starting external caplet")
-extController startExternalCaplet(testAuthor(extController getPowerbox(), null, null))
+extController startExternalCaplet(testAuthor(extController getPowerbox(), null, null))
println("external caplet started")
#test with caplet in emaker
@@ -35,17 +35,17 @@
# test when powerbox launches
def controller := controllerMaker new(
- `def testAuthor(powerbox,b,c) :any {
- def test {
- to start() {
- def traceln := powerbox optCap(powerbox TRACELN())
- traceln("traced internal caplet with powerbox interpreting source, it worked")
- }
- }
- test start()
- test
+ `def testAuthor(powerbox,b,c) :any {
+ def test {
+ to start() {
+ def traceln := powerbox optCap(powerbox TRACELN())
+ traceln("traced internal caplet with powerbox interpreting source, it worked")
+ }
+ }
+ test start()
+ test
}`,
- "Test Caplet", null, "")
+ "Test Caplet", null, "")
println("internal caplet started")
def powerbox := controller getPowerbox()
#def files := powerbox requestFilesPromise(true, "test dialog", "Just Because!", "", null)
1.5 +35 -10 e/src/esrc/com/skyhunter/e/security/powerboxControllerMakerAuthor.emaker
Index: powerboxControllerMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/security/powerboxControllerMakerAuthor.emaker,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- powerboxControllerMakerAuthor.emaker 2001/10/27 17:27:42 1.4
+++ powerboxControllerMakerAuthor.emaker 2001/11/10 19:40:36 1.5
@@ -8,7 +8,7 @@
awt__uriGetter, swing__uriGetter)
def uiKit := <import:com.skyhunter.ex.swing.uiKitAuthor> (awt__uriGetter,swing__uriGetter)
def runSource := <import:com.skyhunter.e.lang.runConfinedSourceFuncAuthor> run(unsafe__uriGetter, interp, traceln, stdout)
-
+
class localURIGetterMaker(directoryCanonicalPath) :near {
def uriGetter {
to get(relativePath) :near {
@@ -38,18 +38,34 @@
//XXX document, when a caplet returns a copy or cut value, that
//XXX value must implement both transferable and ClipboardOwner
//XXX as does StringSelection
-
- def spinoffCapletSource(source) {
- def caplet := runSource(source)
- traceln("ran source made caplet: " + caplet)
- def capsPetsVow := <import:com.skyhunter.installer.agreedCapsPetsVowMakerAuthor>(unsafe__uriGetter, file__uriGetter) new(caplet getRequestedCaps(), "")
+
+ def spinoffCapletStream(stream) {
+ def io__uriGetter := <unsafe:java.io.*>
+ traceln("in powerbox spinoff caplet stream")
+ def readableStream := <io:BufferedReader> new(<io:InputStreamReader> new(stream))
+ def sourceBuffer := <unsafe:java.lang.StringBuffer> new()
+ while (true ) {
+ def next := readableStream readLine()
+ if (next == null) {
+ break()
+ } else {E call(sourceBuffer, "append(String)", [next + "\n"])}
+ }
+ traceln("finished looping stream")
+ def capletAuthor := runSource(sourceBuffer toString())
+
+ traceln("ran source made caplet: " + capletAuthor)
+ def requests := capletAuthor getRequestedCaps()
+ traceln("requests: " + requests)
+ def capsPetsVow := <import:com.skyhunter.installer.agreedCapsPetsVowMakerAuthor>(unsafe__uriGetter, file__uriGetter) new(requests, "")
when (capsPetsVow) -> done(capsPets) {
traceln("got capsxml for spinoff")
def pets := capsPets getPetMap()
- powerboxControllerMaker new(pets get("Name", "Caplet"), pets get("Icon", null), capsPets getCapsXML())
+ def spunPowerController := powerboxControllerMaker new(pets get("Name", "Caplet"), pets get("Icon", null), capsPets getCapsXML())
+ traceln("got spun power: " + spunPowerController)
+ spunPowerController startExternalCaplet(capletAuthor(spunPowerController getPowerbox(),awt__uriGetter, swing__uriGetter))
} catch prob {traceln("incomplete installation of spinoff caplet" + prob)}
}
-
+
class powerbarControllerMaker(eFrame) :near {
def cutFunc() {
traceln("about to do cut reaction")
@@ -103,6 +119,12 @@
url
} else {null}
}
+ to relative(url, urlString) :near {
+ if (agreedUrlsMap maps (url getProtocol())) {
+ traceln("about to get relative url in powerbox")
+ <unsafe:java.net.URL> new(url, urlString)
+ } else {null}
+ }
to get(urlString) :near {urlMaker new(urlString)}
to getAgreedProtocols() :near {agreedUrlsMap snapshot()}
}
@@ -135,7 +157,7 @@
def powerbarController := powerbarControllerMaker new(frame)
def outerContentPane :=
JPanel`$contentPane.X.Y
- ${powerbarController getPowerPanel()}`
+ ${powerbarController getPowerPanel()}`
myJFrame setContentPane(outerContentPane)
frame
}
@@ -183,6 +205,9 @@
to subsetPowers(restrictedMap) :near {
throw("XXX not yet implemented")
}
+ to requestFileRcvrsVow(editable, title, justification, startPathText, optFilter) :any {
+ powerbox requestFilesPromise(editable, title, justification, startPathText, optFilter)
+ }
to requestFilesPromise(editable, title, justification, startPathText, filter) :any {
def answer := [] diverge()
def chooser := <swing:JFileChooser> new()
@@ -221,7 +246,7 @@
}
#XXX remove runSource sometime, when capability-free runconfined source emaker available
to runSource(sourceText) :any {runSource(sourceText)}
- to spinoffCapletSource(sourceText) {spinoffCapletSource(sourceText)}
+ to spinoffCapletStream(stream) {spinoffCapletStream(stream)}
to getGifImage(gifFile) :near {<swing:ImageIcon> new(gifFile) getImage()}
to CAP_TIMER() :any {"capTimer"}
to FRAME_MAKER() :any {"frameMaker"}
1.2 +1 -1 e/src/esrc/com/skyhunter/e/util/domFromTextFunc.emaker
Index: domFromTextFunc.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/domFromTextFunc.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- domFromTextFunc.emaker 2001/09/12 00:01:51 1.1
+++ domFromTextFunc.emaker 2001/11/10 19:40:36 1.2
@@ -1,4 +1,4 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def domFromText(text) :near {
- (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
+ (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
}
1.2 +44 -44 e/src/esrc/com/skyhunter/e/util/domTreeKit.emaker
Index: domTreeKit.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/domTreeKit.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- domTreeKit.emaker 2001/09/12 00:01:51 1.1
+++ domTreeKit.emaker 2001/11/10 19:40:36 1.2
@@ -1,50 +1,50 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def domTreeKit {
- to domFromText(text) :near {
- (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
- }
- to extractChildNodes(tag, node) :near {
- def nodes := [] diverge()
- for each in node {
- if (each getNodeType() == 1 &&
- each getTagName() == tag) {
- nodes push(each)
- }
- }
- nodes snapshot()
- }
+ to domFromText(text) :near {
+ (sml__quasiParser valueMaker(text) substitute(ListMaker run()))
+ }
+ to extractChildNodes(tag, node) :near {
+ def nodes := [] diverge()
+ for each in node {
+ if (each getNodeType() == 1 &&
+ each getTagName() == tag) {
+ nodes push(each)
+ }
+ }
+ nodes snapshot()
+ }
- #returns a map with key=tag and value=textOfTheTag,
- # where the first character of the key is always capitalized
- # (so a tag "foo" would yield a key "Foo")
- to mapDomText(domTextNodes) :any {
- def table := [] asKeys() diverge()
- def nodeText(list) :String {
- if (list size() == 1) {
- list[0] getData()
- } else if (list size() ==0 ) {
- ""
- } else {
- //badData, no way to inform
- }
- }
- def visitor {
- match [verb, args] {
- if (verb =~ `visit@{theKey}`) {
- table[theKey] := nodeText(args[0])
- }
- }
- }
- for each in domTextNodes {each welcome(visitor)}
- table snapshot()
- }
- to xmlFromMap(map) :String {
- var xml := ""
- for key => value in map {
- xml := `$xml<$key>$value</$key>${"\n"}`
- }
- xml
- }
+ #returns a map with key=tag and value=textOfTheTag,
+ # where the first character of the key is always capitalized
+ # (so a tag "foo" would yield a key "Foo")
+ to mapDomText(domTextNodes) :any {
+ def table := [] asKeys() diverge()
+ def nodeText(list) :String {
+ if (list size() == 1) {
+ list[0] getData()
+ } else if (list size() ==0 ) {
+ ""
+ } else {
+ //badData, no way to inform
+ }
+ }
+ def visitor {
+ match [verb, args] {
+ if (verb =~ `visit@{theKey}`) {
+ table[theKey] := nodeText(args[0])
+ }
+ }
+ }
+ for each in domTextNodes {each welcome(visitor)}
+ table snapshot()
+ }
+ to xmlFromMap(map) :String {
+ var xml := ""
+ for key => value in map {
+ xml := `$xml<$key>$value</$key>${"\n"}`
+ }
+ xml
+ }
}
1.2 +8 -8 e/src/esrc/com/skyhunter/e/util/extractChildNodesFunc.emaker
Index: extractChildNodesFunc.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/extractChildNodesFunc.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- extractChildNodesFunc.emaker 2001/09/12 00:01:51 1.1
+++ extractChildNodesFunc.emaker 2001/11/10 19:40:36 1.2
@@ -1,12 +1,12 @@
def extractChildNodes(tag, node) :near {
- def nodes := [] diverge()
- for each in node {
- if (each getNodeType() == 1 &&
- each getTagName() == tag) {
- nodes push(each)
- }
- }
- nodes snapshot()
+ def nodes := [] diverge()
+ for each in node {
+ if (each getNodeType() == 1 &&
+ each getTagName() == tag) {
+ nodes push(each)
+ }
+ }
+ nodes snapshot()
}
#def tree := sml`<a> <b> <c>blah</c></b></a>`
1.3 +20 -20 e/src/esrc/com/skyhunter/e/util/mapDomText.emaker
Index: mapDomText.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/mapDomText.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mapDomText.emaker 2001/09/12 00:01:51 1.2
+++ mapDomText.emaker 2001/11/10 19:40:36 1.3
@@ -1,26 +1,26 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
#returns a map with key=tag and value=textOfTheTag,
-# where the first character of the key is always capitalized
+# where the first character of the key is always capitalized
# (so a tag "foo" would yield a key "Foo")
def mapDomText(domTextNodes) :any {
- def table := [] asKeys() diverge()
- def nodeText(list) :String {
- if (list size() == 1) {
- list[0] getData()
- } else if (list size() ==0 ) {
- ""
- } else {
- //badData, no way to inform
- }
- }
- def visitor {
- match [verb, args] {
- if (verb =~ `visit@{theKey}`) {
- table[theKey] := nodeText(args[0])
- }
- }
- }
- for each in domTextNodes {each welcome(visitor)}
- table snapshot()
+ def table := [] asKeys() diverge()
+ def nodeText(list) :String {
+ if (list size() == 1) {
+ list[0] getData()
+ } else if (list size() ==0 ) {
+ ""
+ } else {
+ //badData, no way to inform
+ }
+ }
+ def visitor {
+ match [verb, args] {
+ if (verb =~ `visit@{theKey}`) {
+ table[theKey] := nodeText(args[0])
+ }
+ }
+ }
+ for each in domTextNodes {each welcome(visitor)}
+ table snapshot()
}
1.2 +19 -19 e/src/esrc/com/skyhunter/e/util/mapDomTextFunc.emaker
Index: mapDomTextFunc.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/mapDomTextFunc.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- mapDomTextFunc.emaker 2001/09/12 00:01:51 1.1
+++ mapDomTextFunc.emaker 2001/11/10 19:40:36 1.2
@@ -1,22 +1,22 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def mapDomText(domTextNodes) :any {
- def table := [] asKeys() diverge()
- def nodeText(list) :String {
- if (list size() == 1) {
- list[0] getData()
- } else if (list size() ==0 ) {
- ""
- } else {
- //badData, no way to inform
- }
- }
- def visitor {
- match [verb, args] {
- if (verb =~ `visit@{theKey}`) {
- table[theKey] := nodeText(args[0])
- }
- }
- }
- for each in domTextNodes {each welcome(visitor)}
- table snapshot()
+ def table := [] asKeys() diverge()
+ def nodeText(list) :String {
+ if (list size() == 1) {
+ list[0] getData()
+ } else if (list size() ==0 ) {
+ ""
+ } else {
+ //badData, no way to inform
+ }
+ }
+ def visitor {
+ match [verb, args] {
+ if (verb =~ `visit@{theKey}`) {
+ table[theKey] := nodeText(args[0])
+ }
+ }
+ }
+ for each in domTextNodes {each welcome(visitor)}
+ table snapshot()
}
1.2 +3 -3 e/src/esrc/com/skyhunter/e/util/testDomTreeKit.e
Index: testDomTreeKit.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/testDomTreeKit.e,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- testDomTreeKit.e 2001/09/12 00:01:51 1.1
+++ testDomTreeKit.e 2001/11/10 19:40:36 1.2
@@ -1,9 +1,9 @@
println("started test")
def domTreeKit := <import:com.skyhunter.e.util.domTreeKit>
def kitTest() {
- def tree := sml`<a> <b> <c>blah</c></b></a>`
- println("b of Tree: " + domTreeKit extractChildNodes("b", tree))
- println("xmlFromMap: " + domTreeKit xmlFromMap(["A" => "1", "b" => "2"]))
+ def tree := sml`<a> <b> <c>blah</c></b></a>`
+ println("b of Tree: " + domTreeKit extractChildNodes("b", tree))
+ println("xmlFromMap: " + domTreeKit xmlFromMap(["A" => "1", "b" => "2"]))
}
kitTest()
1.7 +9 -9 e/src/esrc/com/skyhunter/e/util/timer.e
Index: timer.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/e/util/timer.e,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- timer.e 2001/09/12 00:01:51 1.6
+++ timer.e 2001/11/10 19:40:36 1.7
@@ -2,14 +2,14 @@
//The actionTrio must be a list [target,"verb",[args]]
def doAfter(seconds,actionTrio) :any {
- def actionWrapper {
- to run() {
- #traceln("stopwatch: performing action" + actionTrio)
- E call(actionTrio[0], actionTrio[1], actionTrio[2])
- #traceln("stopwatch: action performed")
- }
- }
- def timer := <import:org.erights.e.extern.timer.Timer> theTimer
- timer after(seconds * 1000, actionWrapper)
+ def actionWrapper {
+ to run() {
+ #traceln("stopwatch: performing action" + actionTrio)
+ E call(actionTrio[0], actionTrio[1], actionTrio[2])
+ #traceln("stopwatch: action performed")
+ }
+ }
+ def timer := <import:org.erights.e.extern.timer.Timer> theTimer
+ timer after(seconds * 1000, actionWrapper)
}
1.2 +21 -21 e/src/esrc/com/skyhunter/eDesk/capLauncherAuthor.emaker
Index: capLauncherAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/capLauncherAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- capLauncherAuthor.emaker 2001/09/12 00:01:51 1.1
+++ capLauncherAuthor.emaker 2001/11/10 19:40:36 1.2
@@ -2,26 +2,26 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def capletLauncherAuthor(unsafe__uriGetter, file__uriGetter, interp, stdout) :any {
- def swing__uriGetter := <unsafe:javax.swing.*>
- def awt__uriGetter := <unsafe:java.awt.*>
- def uiKit := <import:com.skyhunter.ex.swing.uiToolsAuthor> run(awt__uriGetter, swing__uriGetter)
- def traceOut := <unsafe:java.lang.System> out()
- def trace(text) {E call(traceOut, "print(Object)", [text])}
- def traceln(text) {trace(text + "\n")}
+ def swing__uriGetter := <unsafe:javax.swing.*>
+ def awt__uriGetter := <unsafe:java.awt.*>
+ def uiKit := <import:com.skyhunter.ex.swing.uiToolsAuthor> run(awt__uriGetter, swing__uriGetter)
+ def traceOut := <unsafe:java.lang.System> out()
+ def trace(text) {E call(traceOut, "print(Object)", [text])}
+ def traceln(text) {trace(text + "\n")}
- def launchCaplet(capletSourceFile) :any {
- #def sourcePath := capletSourceFile getCanonicalPath()
- #def capletNameRoot := capletSourceFile nameRoot???
- #def sourceDir := capletSourceFile getDir()
- #if (!(<file:installedApps> exists())) {<unsafe:java.io.File> mkdir("installedApps")}
- #def outFile := <file: (capletNameRoot + year + month + day + hour + min + ".run")>
- #def capletAuthor := <import:com.skyhunter.RUNSOURCE> run(capletSourceFile getText())
- #def agreedCapsPromiser := <import:com.skyhunter.installer.agreedCapsXMLPromiserAuthor> run(
- # unsafe__uriGetter, file__uriGetter)
- #def capsXMLVow := agreedCapsPromiser(capletAuthor getRequestedCaps())
- #when (capsXMLVow) -> done(capsXML) {
- # outFile setText(capsXML)
- # mapInstalledRunFile(outFile)
- #} catch prob {traceln("capsXML lost: " + prob)}
- }
+ def launchCaplet(capletSourceFile) :any {
+ #def sourcePath := capletSourceFile getCanonicalPath()
+ #def capletNameRoot := capletSourceFile nameRoot???
+ #def sourceDir := capletSourceFile getDir()
+ #if (!(<file:installedApps> exists())) {<unsafe:java.io.File> mkdir("installedApps")}
+ #def outFile := <file: (capletNameRoot + year + month + day + hour + min + ".run")>
+ #def capletAuthor := <import:com.skyhunter.RUNSOURCE> run(capletSourceFile getText())
+ #def agreedCapsPromiser := <import:com.skyhunter.installer.agreedCapsXMLPromiserAuthor> run(
+ # unsafe__uriGetter, file__uriGetter)
+ #def capsXMLVow := agreedCapsPromiser(capletAuthor getRequestedCaps())
+ #when (capsXMLVow) -> done(capsXML) {
+ # outFile setText(capsXML)
+ # mapInstalledRunFile(outFile)
+ #} catch prob {traceln("capsXML lost: " + prob)}
+ }
}
1.2 +65 -62 e/src/esrc/com/skyhunter/eDesk/installedAppsManagerMaker.emaker
Index: installedAppsManagerMaker.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/installedAppsManagerMaker.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- installedAppsManagerMaker.emaker 2001/09/12 00:01:51 1.1
+++ installedAppsManagerMaker.emaker 2001/11/10 19:40:36 1.2
@@ -1,64 +1,67 @@
class installedAppsManagerMaker (appsXMLFile, traceln) :near {
- def domTreeKit := <import:com.skyhunter.e.util.domTreeKit>
- var appMapsBySourcePath := [] asKeys() diverge()
- var appMapsByPetExtension := [] asKeys() diverge()
- var appMapsByPetName := [] asKeys() diverge()
- def addAppMap(map) {
- appMapsBySourcePath[map["SourcePath"]] := map
- if (map maps ("Suffix")) {appMapsByPetExtension[map["Suffix"]] := map}
- if (map maps ("Name")) {appMapsByPetName[map["Name"]] := map}
- }
- def loadApps() {
- appMapsBySourcePath := [] asKeys() diverge()
- appMapsByPetExtension := [] asKeys() diverge()
- appMapsByPetName := [] asKeys() diverge()
- #traceln("about to get domm tree in appsManager loadapps: " + appsXMLFile getText())
- def appsTree := domTreeKit domFromText(appsXMLFile getText())
- #traceln("got dom tree in appsManager loadapps: " + appsTree)
- #traceln("apps from tree: " + domTreeKit extractChildNodes("app", appsTree[0]))
- for each in domTreeKit extractChildNodes("app", appsTree[0]) {
- def nextAppMap := domTreeKit mapDomText(each)
- addAppMap(nextAppMap)
- }
- traceln("got app map in apps manager: " + appMapsBySourcePath)
- }
- def saveApps() {
- traceln("into saveApps in appsManager, appMaps: " + appMapsBySourcePath)
- var xml := "<installed>\n"
- for each in appMapsBySourcePath {
- xml+= `<app>${"\n"}${domTreeKit xmlFromMap(each)}</app>`
- }
- xml += "</installed>"
- appsXMLFile setText(xml)
- traceln("just set appsxmlfile text: " + xml)
- traceln("the appsxmlfile is: " + appsXMLFile getCanonicalPath())
- }
- loadApps()
- def installedAppsManager {
- to getAppBySourcePath(path) :near {
- traceln("getAppBySource: " + path)
- #traceln("from appMaps: " + appMapsBySourcePath)
- #appMapsBySourcePath[path]
- appMapsBySourcePath[path]
- }
- to optAppBySourcePath(path) :near {appMapsBySourcePath get(path, null)}
- to getAppPetNames() :pbc {
- def names := [] diverge()
- for each => value in appMapsByPetName {
- names push(each)
- }
- names snapshot()
- }
- to optAppByPetName(name) :near {
- traceln("optAppByPetname name: " + name)
- appMapsByPetName get(name, null)
- }
- to reload() {loadApps()}
- to save() {saveApps()}
- to addApp(appMap) {
- addAppMap(appMap)
- saveApps()
- }
- to removeAppBySourcePath(sourcePath) {}
- }
+ def domTreeKit := <import:com.skyhunter.e.util.domTreeKit>
+ var appMapsBySourcePath := [] asKeys() diverge()
+ var appMapsByPetExtension := [] asKeys() diverge()
+ var appMapsByPetName := [] asKeys() diverge()
+ def addAppMap(map) {
+ appMapsBySourcePath[map["SourcePath"]] := map
+ if (map maps ("Suffix")) {appMapsByPetExtension[map["Suffix"]] := map}
+ if (map maps ("Name")) {appMapsByPetName[map["Name"]] := map}
+ }
+ def loadApps() {
+ appMapsBySourcePath := [] asKeys() diverge()
+ appMapsByPetExtension := [] asKeys() diverge()
+ appMapsByPetName := [] asKeys() diverge()
+ #traceln("about to get domm tree in appsManager loadapps: " + appsXMLFile getText())
+ def appsTree := domTreeKit domFromText(appsXMLFile getText())
+ #traceln("got dom tree in appsManager loadapps: " + appsTree)
+ #traceln("apps from tree: " + domTreeKit extractChildNodes("app", appsTree[0]))
+ for each in domTreeKit extractChildNodes("app", appsTree[0]) {
+ def nextAppMap := domTreeKit mapDomText(each)
+ addAppMap(nextAppMap)
+ }
+ traceln("got app map in apps manager: " + appMapsBySourcePath)
+ }
+ def saveApps() {
+ traceln("into saveApps in appsManager, appMaps: " + appMapsBySourcePath)
+ var xml := "<installed>\n"
+ for each in appMapsBySourcePath {
+ xml+= `<app>${"\n"}${domTreeKit xmlFromMap(each)}</app>`
+ }
+ xml += "</installed>"
+ appsXMLFile setText(xml)
+ traceln("just set appsxmlfile text: " + xml)
+ traceln("the appsxmlfile is: " + appsXMLFile getCanonicalPath())
+ }
+ loadApps()
+ def installedAppsManager {
+ to getAppBySourcePath(path) :near {
+ traceln("getAppBySource: " + path)
+ #traceln("from appMaps: " + appMapsBySourcePath)
+ #appMapsBySourcePath[path]
+ appMapsBySourcePath[path]
+ }
+ to optAppBySourcePath(path) :near {appMapsBySourcePath get(path, null)}
+ to getAppPetNames() :pbc {
+ def names := [] diverge()
+ for each => value in appMapsByPetName {
+ names push(each)
+ }
+ names snapshot()
+ }
+ to optAppByPetName(name) :near {
+ traceln("optAppByPetname name: " + name)
+ appMapsByPetName get(name, null)
+ }
+ to optAppByPetSuffix(suffix) :near {
+ appMapsByPetExtension get(suffix, null)
+ }
+ to reload() {loadApps()}
+ to save() {saveApps()}
+ to addApp(appMap) {
+ addAppMap(appMap)
+ saveApps()
+ }
+ to removeAppBySourcePath(sourcePath) {}
+ }
}
1.2 +15 -6 e/src/esrc/com/skyhunter/eDesk/navPanelControllerMakerAuthor.emaker
Index: navPanelControllerMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/navPanelControllerMakerAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- navPanelControllerMakerAuthor.emaker 2001/10/27 17:34:08 1.1
+++ navPanelControllerMakerAuthor.emaker 2001/11/10 19:40:36 1.2
@@ -65,7 +65,7 @@
}
}
- class cellMaker(var name, isDir) :near {
+ class cellMaker(var name, isDir, suffixMapper) :near {
var component := null
var label := null
var icon := null
@@ -75,7 +75,16 @@
if (component != null) {
component
} else {
- icon := if (isDir) {dirIcon} else {unAssociatedIcon}
+ var icon := unAssociatedIcon
+ if (isDir) {
+ icon := dirIcon
+ } else {
+ def optApp := suffixMapper optAppByPetSuffix(computeSuffix(name))
+ if (optApp != null) {
+ traceln ("found suffix app: " + optApp)
+ icon := <swing:ImageIcon> new(optApp["Icon"])
+ }
+ }
iconPane := <swing:JLabel> new(icon)
iconPane setIcon(icon)
label := <swing:JTextField> new(name)
@@ -94,13 +103,13 @@
}
}
- def composeCellArray(dirsFiles) :pbc {
+ def composeCellArray(dirsFiles, suffixMapper) :pbc {
def list := [] diverge()
for each in dirsFiles[0] {
- list push(cellMaker new(each, true))
+ list push(cellMaker new(each, true, suffixMapper))
}
for each in dirsFiles[1] {
- list push(cellMaker new(each, false))
+ list push(cellMaker new(each, false, suffixMapper))
}
list snapshot()
}
@@ -158,7 +167,7 @@
def dirsVow := recentFilesListVow (diskNavRcvr <- listCurrentSubdirectoriesAndFiles())
when (dirsVow, currentPathVow) -> done(dirsFilesTuple, currentPath) {
locationLabel setText(dirNameFromPath(currentPath))
- listPanel setListData(composeCellArray(dirsFilesTuple))
+ listPanel setListData(composeCellArray(dirsFilesTuple, suffixMapper))
windowController setStatus("Refresh done.")
} catch err {
#connectionWarning("Screen Refresh Failed\n" + err)
1.2 +23 -23 e/src/esrc/com/skyhunter/eDesk/progressWindowMakerAuthor.emaker
Index: progressWindowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/progressWindowMakerAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- progressWindowMakerAuthor.emaker 2001/09/12 00:01:51 1.1
+++ progressWindowMakerAuthor.emaker 2001/11/10 19:40:36 1.2
@@ -1,25 +1,25 @@
def progressWindowMakerAuthor(swing__uriGetter, standardWindow) :near {
- class progressWindowMaker(title) :near {
- var fileSize := 1000000000
- def progressWindow
- def myFrame := standardWindow(title,progressWindow)
- def myProgressPane := <swing:JProgressBar> new()
- myProgressPane setStringPainted(true)
- myFrame getContentPane() add(myProgressPane)
- myFrame pack()
- myFrame setSize(150,50)
- myFrame show()
- def bind progressWindow {
- to setProgress(amountCopied) {
- def percent := (amountCopied *100) _/ fileSize
- myProgressPane setValue(percent)
- myProgressPane setString(`$percent%`)
- }
- to setFileSize(size) {
- fileSize := size
- }
- to windowClosing() {}
- to closeWindow() {myFrame dispose()}
- }
- }
+ class progressWindowMaker(title) :near {
+ var fileSize := 1000000000
+ def progressWindow
+ def myFrame := standardWindow(title,progressWindow)
+ def myProgressPane := <swing:JProgressBar> new()
+ myProgressPane setStringPainted(true)
+ myFrame getContentPane() add(myProgressPane)
+ myFrame pack()
+ myFrame setSize(150,50)
+ myFrame show()
+ def bind progressWindow {
+ to setProgress(amountCopied) {
+ def percent := (amountCopied *100) _/ fileSize
+ myProgressPane setValue(percent)
+ myProgressPane setString(`$percent%`)
+ }
+ to setFileSize(size) {
+ fileSize := size
+ }
+ to windowClosing() {}
+ to closeWindow() {myFrame dispose()}
+ }
+ }
}
1.2 +17 -17 e/src/esrc/com/skyhunter/eDesk/serverDescVowAuthor.emaker
Index: serverDescVowAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/serverDescVowAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- serverDescVowAuthor.emaker 2001/10/27 17:34:08 1.1
+++ serverDescVowAuthor.emaker 2001/11/10 19:40:36 1.2
@@ -12,7 +12,7 @@
//**********
def serverDescVowAuthor(unsafe__uriGetter, awt__uriGetter, swing__uriGetter, frameMaker, traceln) :any {
-
+
def JPanel__quasiParser := <import:org.erights.ex.swing.JPanelQParserMaker> new(awt__uriGetter, swing__uriGetter)
def promiseAllResolved := <import:com.skyhunter.e.net.promiseAllResolved>
#def uriTools := <import:com.skyhunter.e.net.uriToolsAuthor>(introducer,
@@ -24,14 +24,14 @@
swing__uriGetter,
JPanel__quasiParser,
frameMaker)
-
+
#integer string converter
def toInt(numString) :near {(<unsafe:java.lang.Integer> new(numString)) intValue()}
-
+
#****** Configurator Specific Code ***********
-
+
def mainFrame := frameMaker new()
- def [configVow, configSolver] := PromiseMaker()
+ def [configVow, configSolver] := PromiseMaker()
def configReady
def windowTitleField := <swing:JTextField> new("My eDesk Server")
def rootPathField := <swing:JTextField> new()
@@ -46,16 +46,16 @@
def okButton := uiSet newButton("OK",configReady)
def l(text) :near {<swing:JLabel> new(text)}
def formPane :=
- JPanel`${l("Browser-Window Title")} $windowTitleField.X
- ${l("Home Path")} $homePathField.X
- $serverOnlyBox >
- ${l(" Write Capability To")} $capFileField.X
- ${l(" ")} >
- ${l(" Security Configuration")} >
- $isReadOnlyBox >
- ${l("Top Accessible Directory")} $rootPathField.X
- $okButton > `
-
+ JPanel`${l("Browser-Window Title")} $windowTitleField.X
+ ${l("Home Path")} $homePathField.X
+ $serverOnlyBox >
+ ${l(" Write Capability To")} $capFileField.X
+ ${l(" ")} >
+ ${l(" Security Configuration")} >
+ $isReadOnlyBox >
+ ${l("Top Accessible Directory")} $rootPathField.X
+ $okButton > `
+
traceln("config form about to make window")
#create form window
def mainPane := mainFrame getContentPane()
@@ -65,7 +65,7 @@
mainFrame pack()
#mainFrame setSize(400,200)
mainFrame show()
-
+
def bind configReady() {
#traceln("made it")
configSolver resolve (`
@@ -80,6 +80,6 @@
`)
mainFrame dispose()
}
-
+
configVow
}
1.2 +6 -2 e/src/esrc/com/skyhunter/eDesk/icons/folder.gif
Index: folder.gif
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/eDesk/icons/folder.gif,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
Binary files /tmp/cvsrcomX2 and /tmp/cvserUsSV differ
1.1 e/src/esrc/com/skyhunter/eDesk/icons/folderOld.gif
Index: folderOld.gif
===================================================================
GIF89a
0j1S HJ*ëX
1.3 +2 -2 e/src/esrc/com/skyhunter/ex/swing/capFrameMakerAuthor.emaker
Index: capFrameMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/ex/swing/capFrameMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- capFrameMakerAuthor.emaker 2001/09/12 00:01:51 1.2
+++ capFrameMakerAuthor.emaker 2001/11/10 19:40:36 1.3
@@ -46,7 +46,7 @@
class capFrameMaker() :near {
def innerFrame := <swing:JFrame> new()
- if (appImage != null) {innerFrame setIconImage(appImage)}
+ if (appImage != null) {innerFrame setIconImage(appImage)}
innerFrame setTitle(appTitle)
def contentPane := <swing:JPanel> new()
def powerPane := <swing:JPanel> new()
@@ -71,6 +71,6 @@
}
#def powerbox {match [verb,arg] {}}
-#def maker := capFrameMakerAuthor(powerbox, <swing:JFrame>, null, "test")
+#def maker := capFrameMakerAuthor(powerbox, <swing:JFrame>, null, "test")
#def win := maker new()
#win show()
1.2 +6 -6 e/src/esrc/com/skyhunter/ex/swing/dialogVowMakerAuthor.emaker
Index: dialogVowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/ex/swing/dialogVowMakerAuthor.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- dialogVowMakerAuthor.emaker 2001/09/12 00:01:51 1.1
+++ dialogVowMakerAuthor.emaker 2001/11/10 19:40:36 1.2
@@ -11,11 +11,11 @@
//**********
//XXX fix this author to require only jframe when capwt is working
-def dialogVowMakerAuthor (awt__uriGetter, swing__uriGetter, dummyJPanel, frameMaker) :near {
+def dialogVowMakerAuthor (awt__uriGetter, swing__uriGetter, dummyJPanel, frameMaker) :near {
def JPanel__quasiParser := <import:org.erights.ex.swing.JPanelQParserMaker> new(
awt__uriGetter, swing__uriGetter)
def uiTools := <import:com.skyhunter.ex.swing.uiToolsAuthor> (awt__uriGetter, swing__uriGetter)
-
+
class dialogPromiser (title, label, textFieldDefaultValue, buttonNames) :any {
var myClickedButton := null
def [finishedDialogPromise, resolver] := PromiseMaker()
@@ -28,9 +28,9 @@
}
to windowClosed(event) {
if (undisposed) {
- myWin dispose()
- undisposed := false
- }
+ myWin dispose()
+ undisposed := false
+ }
}
match _ {}
}
@@ -68,7 +68,7 @@
$buttonPane `
#traceln("made buttons")
def border := <awt:BorderLayout> new()
- mainPane setLayout(border)
+ mainPane setLayout(border)
mainPane add(dialogPane, "Center")
myWin pack()
myWin show()
1.4 +25 -25 e/src/esrc/com/skyhunter/ex/swing/standardWindowMakerAuthor.emaker
Index: standardWindowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/ex/swing/standardWindowMakerAuthor.emaker,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- standardWindowMakerAuthor.emaker 2001/09/12 00:01:51 1.3
+++ standardWindowMakerAuthor.emaker 2001/11/10 19:40:36 1.4
@@ -1,29 +1,29 @@
def standardWindowMakerAuthor(interp, frameMaker) :near {
- //close whole app when windowset returns to zero size
- def windowSet := [] asKeys() diverge()
- def standardWindowMaker (title, windowClosingHandler) :near {
- var undisposed := true
- def mainFrame := frameMaker new(title)
- windowSet[mainFrame] := mainFrame
- def windowListener {
- to windowClosing(event) {
- windowClosingHandler windowClosing()
- }
- to windowClosed(event) {
- windowSet removeKey(mainFrame)
- if (undisposed) {
- mainFrame dispose()
- undisposed := false
- }
- if (windowSet size() == 0) {
- interp continueAtTop()
- }
- }
- match _ {}
- }
- mainFrame addWindowListener(windowListener)
- mainFrame
- }
+ //close whole app when windowset returns to zero size
+ def windowSet := [] asKeys() diverge()
+ def standardWindowMaker (title, windowClosingHandler) :near {
+ var undisposed := true
+ def mainFrame := frameMaker new(title)
+ windowSet[mainFrame] := mainFrame
+ def windowListener {
+ to windowClosing(event) {
+ windowClosingHandler windowClosing()
+ }
+ to windowClosed(event) {
+ windowSet removeKey(mainFrame)
+ if (undisposed) {
+ mainFrame dispose()
+ undisposed := false
+ }
+ if (windowSet size() == 0) {
+ interp continueAtTop()
+ }
+ }
+ match _ {}
+ }
+ mainFrame addWindowListener(windowListener)
+ mainFrame
+ }
}
1.3 +70 -65 e/src/esrc/com/skyhunter/installer/agreedCapsPetsVowMakerAuthor.emaker
Index: agreedCapsPetsVowMakerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/agreedCapsPetsVowMakerAuthor.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- agreedCapsPetsVowMakerAuthor.emaker 2001/10/27 17:27:42 1.2
+++ agreedCapsPetsVowMakerAuthor.emaker 2001/11/10 19:40:37 1.3
@@ -13,9 +13,9 @@
def winImage := <swing:ImageIcon> new(
<resource:com/skyhunter/eDesk/icons/super.gif>) getImage()
def lbl(contents) :near { <swing:JLabel> new(contents)}
-
+
def mapDomText := <import:com.skyhunter.e.util.mapDomText>
-
+
class capsPetsMaker(capsXML,petMap) :near {
def capsPets {
to getCapsXML() :String {capsXML}
@@ -39,7 +39,7 @@
var petIconField := lbl(" ")
#petListPanel setLayout(<awt:GridLayout> new(3,2))
def capTabsPane := <swing:JTabbedPane> new()
-
+
def buildPetIconSelectionPane(defaultsTable) :near {
def tempPath := baseDirPath + defaultsTable["Icon"]
var iconPath := <file: tempPath> getCanonicalPath()
@@ -47,10 +47,10 @@
def pathLabel := <swing:JLabel> new(iconPath)
petFieldsMap["Icon"] := pathLabel
def icon := <swing:ImageIcon> new(
- <unsafe:java.net.URL> new("file:" + iconPath))
+ <unsafe:java.net.URL> new("file:" + iconPath))
def iconLabel := <swing:JLabel> new(icon)
def changeIconFunc() {
- def dialog := <awt:FileDialog> new(<swing:JFrame> new(),
+ def dialog := <awt:FileDialog> new(<swing:JFrame> new(),
"Select Icon For This Caplet",
0)
dialog show()
@@ -62,45 +62,45 @@
<unsafe:java.net.URL> new("file:" + iconPath))
iconLabel setIcon(newIcon)
}
-
+
}
def newIconB := uiKit newButton("Change Icons",changeIconFunc)
traceln("about to build JPanel")
JPanel`$iconLabel $pathLabel >
V $newIconB ${lbl(" ")}.X `
}
-
+
def protocolsVisitor {
to visitProtocol(subnodes) {
def table := mapDomText(subnodes)
traceln("table: " + table)
#if (validUrlProtocols maps(table["Name"])) {
- def protocolCheck := <swing:JCheckBox> new(table["Name"])
- def whyLabel := <swing:JLabel> new(table["Why"])
- def protocolPane := JPanel`$protocolCheck $whyLabel.X`
- def clickedRunner() {
- traceln("into clickedRunner")
- if (protocolCheck isEnabled()) {
- agreedUrlProtocols[table["Name"]] := null
- } else {
- agreedUrlProtocols removeKey(table["Name"])
- }
- traceln("did clickedRunner: " + agreedUrlProtocols)
+ def protocolCheck := <swing:JCheckBox> new(table["Name"])
+ def whyLabel := <swing:JLabel> new(table["Why"])
+ def protocolPane := JPanel`$protocolCheck $whyLabel.X`
+ def clickedRunner() {
+ traceln("into clickedRunner")
+ if (protocolCheck isEnabled()) {
+ agreedUrlProtocols[table["Name"]] := null
+ } else {
+ agreedUrlProtocols removeKey(table["Name"])
}
- uiKit attachAction(protocolCheck, clickedRunner)
- urlProtocolsListPanel add(protocolPane)
+ traceln("did clickedRunner: " + agreedUrlProtocols)
+ }
+ uiKit attachAction(protocolCheck, clickedRunner)
+ urlProtocolsListPanel add(protocolPane)
#} else {traceln("invalid protocol: " + table["Name"])}
}
to viewText(text) {}
}
-
+
def requestsVisitor {
to visitUrlProtocols(subnodes) {
for each in subnodes {each welcome(protocolsVisitor)}
def helpLabel := <swing:JLabel> new(stringDataKit getUrlProtocolHelp())
def urlProtocolsMainPanel :=
JPanel`$urlProtocolsListPanel
- $helpLabel.Y`
+ $helpLabel.Y`
urlProtocolsMainPanel setName("Web")
capTabsPane add(urlProtocolsMainPanel)
}
@@ -119,28 +119,28 @@
#insertLabelFieldPair("Pet Name:", "Name")
petNameLabel := lbl("Pet Name: ")
petNameField := <swing:JTextField> new(table["Name"])
- petFieldsMap["Name"] := petNameField
+ petFieldsMap["Name"] := petNameField
petTabNeeded := true
}
if (table maps("Suffix")) {
#insertLabelFieldPair("Default File Extension: ", "Suffix")
petSuffixLabel := lbl("Default File Extension: ")
petSuffixField := <swing:JTextField> new(table["Suffix"])
- petFieldsMap["Suffix"] := petSuffixField
+ petFieldsMap["Suffix"] := petSuffixField
petTabNeeded := true
}
if (table maps("Icon")) {
#insertLabelFieldPair("Icon Path:", "Icon")
#def iconLabel :=
petIconLabel := <swing:JLabel> new("Pet Icon")
- petIconField := buildPetIconSelectionPane(table)
- traceln("addedIconpanel to pet list panel")
+ petIconField := buildPetIconSelectionPane(table)
+ traceln("addedIconpanel to pet list panel")
petTabNeeded := true
}
if (petTabNeeded) {
def helpLabel := <swing:JLabel> new(stringDataKit getPetHelp())
- def petListPanel :=
- JPanel`$petNameLabel $petNameField.X
+ def petListPanel :=
+ JPanel`$petNameLabel $petNameField.X
${lbl(" ")} ${lbl(" ")}
$petSuffixLabel $petSuffixField
${lbl(" ")} ${lbl(" ")}
@@ -163,44 +163,49 @@
to viewText(blah) {}
}
for each in requestsTree {each welcome(topVisitor)}
- def frame := <swing:JFrame> new()
- frame setIconImage(winImage)
- def windowListener {
- to windowClosing(event) {
- capsSolver smash("Grants not made")
+ if (capTabsPane getComponentCount() > 0) {
+ def frame := <swing:JFrame> new()
+ frame setIconImage(winImage)
+ def windowListener {
+ to windowClosing(event) {
+ capsSolver smash("Grants not made")
+ frame dispose()
+ }
+ match [verb, args] {}
+ }
+ frame addWindowListener(windowListener)
+ def grantFunc() {
+ traceln("into grantfunc: " )
frame dispose()
- }
- match [verb, args] {}
- }
- frame addWindowListener(windowListener)
- def grantFunc() {
- traceln("into grantfunc: " )
- frame dispose()
- var xmlOut := "<caps>"
- if (agreedUrlProtocols size() > 0) {
- xmlOut += "<urlProtocols>"
- for each => dummy in agreedUrlProtocols {
- xmlOut += `<protocol>$each</protocol>`
- }
- xmlOut += "</urlProtocols>"
- }
- xmlOut += "</caps>"
- def petData := [] asKeys() diverge()
- for key => value in petFieldsMap {
- petData[key] := value getText()
- }
- capsSolver resolve(capsPetsMaker new(xmlOut,petData snapshot() ) )
- }
- def grantButton := uiKit newButton("Finish Installation", grantFunc)
- def spacer := <swing:JLabel> new(" ")
- def realPane :=
- JPanel`$capTabsPane.Y
+ var xmlOut := "<caps>"
+ if (agreedUrlProtocols size() > 0) {
+ xmlOut += "<urlProtocols>"
+ for each => dummy in agreedUrlProtocols {
+ xmlOut += `<protocol>$each</protocol>`
+ }
+ xmlOut += "</urlProtocols>"
+ }
+ xmlOut += "</caps>"
+ def petData := [] asKeys() diverge()
+ for key => value in petFieldsMap {
+ petData[key] := value getText()
+ }
+ capsSolver resolve(capsPetsMaker new(xmlOut,petData snapshot() ) )
+ }
+ def grantButton := uiKit newButton("Finish Installation", grantFunc)
+ def spacer := <swing:JLabel> new(" ")
+ def realPane :=
+ JPanel`$capTabsPane.Y
$spacer
- $grantButton `
- frame getContentPane() add(realPane)
- frame pack()
- frame setSize(600,600)
- frame show()
+ $grantButton `
+ frame getContentPane() add(realPane)
+ frame pack()
+ frame setSize(600,600)
+ frame show()
+ } else {
+ capsSolver resolve(capsPetsMaker new("<caps></caps>", [] asMap()))
+ }
capsPromise
+
}
-}
+}
1.4 +6 -1 e/src/esrc/com/skyhunter/installer/persistentInstallerAuthor.emaker
Index: persistentInstallerAuthor.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/persistentInstallerAuthor.emaker,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- persistentInstallerAuthor.emaker 2001/10/27 17:27:42 1.3
+++ persistentInstallerAuthor.emaker 2001/11/10 19:40:37 1.4
@@ -56,8 +56,13 @@
outFile setText(capsPets getCapsXML() )
def appMap := capsPets getPetMap() diverge()
traceln("new appMap in persistentInstaller: " + appMap)
- appMap["SourcePath"] := capletSourceFile getCanonicalPath()
+ traceln("sourcepath: " + sourcePath)
+ #appMap["SourcePath"] := capletSourceFile getCanonicalPath()
+ appMap["SourcePath"] := sourcePath
+
+ traceln("set source path")
appMap["RunPath"] := outFile getCanonicalPath()
+ traceln("set source and run paths")
appsManager addApp(appMap )
dialogVowMaker new("Installation Complete",
`<html><center>Installation of <p>$capletNameRoot <p> succeeded</center>`, null, ["OK"])
1.3 +14 -14 e/src/esrc/com/skyhunter/installer/stringDataKit.emaker
Index: stringDataKit.emaker
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/stringDataKit.emaker,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- stringDataKit.emaker 2001/10/27 17:27:42 1.2
+++ stringDataKit.emaker 2001/11/10 19:40:37 1.3
@@ -2,31 +2,31 @@
//Copyright (C) 2001 Combex. All Rights Reserved.
def stringDataKit {
- to getUrlProtocolHelp() :String {
-"<html><b><i>Warning! </i></b>The <b>file</b> protocol is very powerful,
-it can read every file on your disk. It cannot enable a cracker to take control
+ to getUrlProtocolHelp() :String {
+"<html><b><i>Warning! </i></b>The <b>file</b> protocol is very powerful,
+it can read every file on your disk. It cannot enable a cracker to take control
of your computer, but it does put all your confidential data at risk if combined with
-any of the other protocols in this tab.
+any of the other protocols in this tab.
<p><b>General Rating: </b>Medium-high power <br>
<b>Legitimate applications: </b> Web browsers, FTP servers, some chat programs
<br><b>Risks: </b>
-A program granted URL protocols can transmit any data you supply the program to
-anyone on the network. So be careful about granting both read authority on your
+A program granted URL protocols can transmit any data you supply the program to
+anyone on the network. So be careful about granting both read authority on your
confidential files and URL protocols to the same program.<br>
The program can also receive orders from other people through these protocols.
-<br>These protocols can be used in denial of service attacks on other people by
+<br>These protocols can be used in denial of service attacks on other people by
the program.
-<br> URL protocols cannot be directly used to gain control of your computer. However,
-any attempt to gain control of your system is likely to include a request for these
+<br> URL protocols cannot be directly used to gain control of your computer. However,
+any attempt to gain control of your system is likely to include a request for these
protocols so that the attacker can communicate with the suborned system.
</html>"
- }
- to getPetHelp() :String {
+ }
+ to getPetHelp() :String {
"<html>The Pet Name is your personal name for this program.
-<p> The File Extension is the last part of the names of documents
+<p> The File Extension is the last part of the names of documents
which will be opened with this caplet by default
-<p> The Pet Icon is the image that will be placed in the top left
+<p> The Pet Icon is the image that will be placed in the top left
corner of all windows opened by this caplet
</html>"
- }
+ }
}
1.2 +2 -2 e/src/esrc/com/skyhunter/installer/testAgreedCapsVow.e
Index: testAgreedCapsVow.e
===================================================================
RCS file: /cvs/e/src/esrc/com/skyhunter/installer/testAgreedCapsVow.e,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- testAgreedCapsVow.e 2001/11/01 06:56:49 1.1
+++ testAgreedCapsVow.e 2001/11/10 19:40:37 1.2
@@ -31,8 +31,8 @@
println(`capPet promise: $capPetvow`)
when (capPetvow) -> done(capPet) {
- println("got answer, xml: " + capPet getCapsXML())
- println("appMap: " + capPet getPetMap())
+ println("got answer, xml: " + capPet getCapsXML())
+ println("appMap: " + capPet getPetMap())
} catch prob {println("prob: " + prob)}
interp blockAtTop()
1.2 +1 -1 e/src/esrc/org/erights/e/tools/text/abbrev.emaker
Index: abbrev.emaker
===================================================================
RCS file: /cvs/e/src/esrc/org/erights/e/tools/text/abbrev.emaker,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- abbrev.emaker 2001/09/04 10:45:03 1.1
+++ abbrev.emaker 2001/11/10 19:40:37 1.2
@@ -9,7 +9,7 @@
str
} else {
def segLen := budget _/ 2 - 1
- def restLen := budget - segLen - 3
+ def restLen := budget - segLen - 3
str(0,segLen) + "..." + str(len - restLen, len)
}
}
1.45 +43 -43 e/src/esrc/scripts/eBrowser.e
Index: eBrowser.e
===================================================================
RCS file: /cvs/e/src/esrc/scripts/eBrowser.e,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -r1.44 -r1.45
--- eBrowser.e 2001/10/27 17:27:42 1.44
+++ eBrowser.e 2001/11/10 19:40:37 1.45
@@ -44,7 +44,7 @@
JFrameMaker)
def setupDrop := <import:com.skyhunter.e.awt.dnd.setupDropFuncAuthor> (
<awt:dnd.DropTarget>, println)
-
+
def StringReaderMaker := <unsafe:java.io.StringReader>
def textSelectorMaker := <import:org.erights.ex.swing.textSelectorMaker>
def abbrev := <import:org.erights.e.tools.text.abbrev>
@@ -92,17 +92,17 @@
def popAboutBox() {
def props := interp getProps()
def text := `<html>For Help with eBrowser, see<br>
- http://www.skyhunter.com/marcs/eBrowserIndex.html<p><p>
+ http://www.skyhunter.com/marcs/eBrowserIndex.html<p><p>
- Copyright 1999 Marc Stiegler. All rights reserved.<br>
- This software covered by the Mozilla license. For details see<p><p>
+ Copyright 1999 Marc Stiegler. All rights reserved.<br>
+ This software covered by the Mozilla license. For details see<p><p>
- http://www.skyhunter.com/marcs/eBrowser-license.html<p><p>
+ http://www.skyhunter.com/marcs/eBrowser-license.html<p><p>
- OS version: ${props["os.name"]} ${props["os.version"]} on ${props["os.arch"]}<br>
- Java version: ${props["java.version"]} at ${props["java.home"] replaceAll("\\", "/")}<br>
- E version: ${props["e.version"]} at ${props["e.home"]}<br>
- for ${props["user.name"]} in ${props["user.region"]}</html>`
+ OS version: ${props["os.name"]} ${props["os.version"]} on ${props["os.arch"]}<br>
+ Java version: ${props["java.version"]} at ${props["java.home"] replaceAll("\\", "/")}<br>
+ E version: ${props["e.version"]} at ${props["e.home"]}<br>
+ for ${props["user.name"]} in ${props["user.region"]}</html>`
dialogVowMaker new("About eBrowser", text, null, ["OK"])
}
@@ -350,11 +350,11 @@
resultPane setText("Execution ended:\n# value: " + result)
statusPane setText("Execution ended")
traceln("shown")
-
+
} catch problem {
problemReporter(problem)
}
-
+
}
interpret <- run()
}
@@ -487,7 +487,7 @@
<resource: `com/skyhunter/e/icons/$name`>
}
}
-
+
def eBrowser
textModel addFuncsChangedAlertRecipient(eBrowser)
var closingInProcess := false
@@ -532,7 +532,7 @@
def runButton := newToolButton(
<icons:run.gif>,
"Run","executeProgram",eBrowser)
-
+
# build text pane
def textPane := <swing:JTextArea> new()
textPane setMargin(<awt:Insets> new(0,5,0,10))
@@ -556,7 +556,7 @@
textModel replaceStubFile(file)
openFiles [path] := eBrowser
setTitle()
- textPane setText(textModel reload())
+ textPane setText(textModel reload())
} else {
def browser := eBrowserMaker new(textModelMaker new(file))
openFiles[path] := browser
@@ -567,9 +567,9 @@
openFile(files[i])
}
}
- setupDrop(textPane, [<awt:datatransfer.DataFlavor> javaFileListFlavor()
+ setupDrop(textPane, [<awt:datatransfer.DataFlavor> javaFileListFlavor()
=> reactToFilesDrop])
-
+
# build variable list pane
def varListPopup := <swing:JPopupMenu> new("Var Ops")
addMenuItem(varListPopup,"Insert","insertVar", eBrowser)
@@ -607,7 +607,7 @@
}
varListPane addMouseListener(varListPaneListener)
scrollingVarPane setMinimumSize(<awt:Dimension> new(50, 100))
-
+
# build function list pane
def funcListPane := <swing:JList> new(<unsafe:java.util.Vector> new())
funcListPane setFont(<awt:Font> new("Monospaced",<awt:Font> PLAIN(),12))
@@ -646,7 +646,7 @@
#funcListPane setPreferredSize(<awt:Dimension> new(200, 100)) # why no effect?
#scrollingFuncPane setMinimumSize(<awt:Dimension> new(100, 100))
#scrollingFuncPane setPreferredSize(<awt:Dimension> new(200, 100)) # why no effect?
-
+
# build output viewpane
def outputPane := <swing:JTextArea> new()
outputPane setMinimumSize(<awt:Dimension> new(20, 20))
@@ -655,7 +655,7 @@
<swing:ScrollPaneConstants> VERTICAL_SCROLLBAR_AS_NEEDED(),
<swing:ScrollPaneConstants> HORIZONTAL_SCROLLBAR_AS_NEEDED())
scrollingOutputPane getViewport() add(outputPane)
-
+
# build splitter panes
def varLineSplitter := <swing:JSplitPane> new()
varLineSplitter setLeftComponent(scrollingTextPane)
@@ -666,23 +666,23 @@
def outLineSplitter := <swing:JSplitPane> new()
outLineSplitter setLeftComponent(scrollingFuncPane)
outLineSplitter setRightComponent(outputSplitter)
-
+
# build status pane
def statusPane := E call(<swing:JLabel>, "new(String)",[" "])
statusPane setFont(<awt:Font> new("Monospaced",<awt:Font> PLAIN(),11))
-
+
def s1 := uiTools labelIcon(<icons:separator.gif>)
def s2 := uiTools labelIcon(<icons:separator.gif>)
def s3 := uiTools labelIcon(<icons:separator.gif>)
-
+
# real pane
def buttonPane :=
JPanel`$saveButton $reformatButton $s1 $pasteUpdocButton $elmerButton $s2 $runHiLiteButton $runButton $s3 $gotoButton $findButton $searchField.X`
def realPane :=
JPanel`$buttonPane
- $outLineSplitter.X.Y
- $statusPane `
-
+ $outLineSplitter.X.Y
+ $statusPane `
+
# def text replacer function
def replaceSelectionHilite(replacement) {
def location := textPane getSelectionStart()
@@ -691,7 +691,7 @@
textPane moveCaretPosition(location + replacement size())
textPane requestFocus()
}
-
+
# menubar
def newFileFunc() {
eBrowserMaker new(textModelMaker new(null))
@@ -729,7 +729,7 @@
}
}
}
-
+
def makeFontLarger() {
def oldFont := textPane getFont()
def newFont := oldFont deriveFont(0.0 + oldFont getSize() + 2.0)
@@ -737,7 +737,7 @@
funcListPane setFont(newFont)
varListPane setFont(newFont)
}
-
+
def makeFontSmaller() {
def oldFont := textPane getFont()
def newFont := oldFont deriveFont(0.0 + oldFont getSize() - 2.0)
@@ -745,7 +745,7 @@
funcListPane setFont(newFont)
varListPane setFont(newFont)
}
-
+
# Option menu
var capScriptsMaySubstitute := false
#def substitutionAllowedMenuItem :=
@@ -755,8 +755,8 @@
#capScriptsMaySubstitute := substitutionAllowedMenuItem getState()
#}
#uiTools attachAction(substitutionAllowedMenuItem,toggleSubstitution)
-
-
+
+
# capScript menu
# scriptEvaluator must be a single-argument receiver, receiving a
# source text
@@ -800,10 +800,10 @@
#scriptFolder,
#def confiner(source) :any {confinedRunner(source, outputPane)})
#E call(menubar, "add(JMenu)", [capScriptMenu])
-
+
#def indentGroup := <swing:ButtonGroup> new()
#var defaultIndentItem := null
-
+
def menuReactor {
to doNew(){newFileFunc()}
to doOpen() {openFunc()}
@@ -816,7 +816,7 @@
to doAbout() {eBrowser about()}
match [verb,args] {traceln("menu hit for " + verb)}
}
-
+
#make the menus
def mm := <import:com.skyhunter.ex.swing.menuMakerAuthor> (
swing__uriGetter,
@@ -843,7 +843,7 @@
])
#defaultIndentItem setSelected(true)
mainFrame setJMenuBar(menuBar)
-
+
# configure and show window
mainPane add(realPane)
setTitle()
@@ -857,7 +857,7 @@
# def width := varLineSplitter getBounds() width()
E call(varLineSplitter, "setDividerLocation(int)",[600])
mainFrame show()
-
+
def windowActiveListener {
to windowActivated(e) {
if (textModel storedVersionIsNewer()) {
@@ -873,24 +873,24 @@
if (shouldUpdate == <swing:JOptionPane> YES_OPTION()) {
textPane setText(textModel reload())
} else {textModel resetSaveTimeNoReload()}
-
+
}
}
match _ {}
}
mainFrame addWindowListener(windowActiveListener)
-
+
startOutlineSyncer(farBrowseServerMaker <- new(), textModel, textPane)
-
+
def path := textModel getFilePath()
def textSelector := textSelectorMaker new(textPane, `file:$path`)
def problemReporter := problemReporterMaker new(textSelector, outputPane, statusPane)
-
+
def getTwine() :Twine {
def reader := StringReaderMaker new(textPane getText())
reader getTwine(`file:$path`)
}
-
+
var undisposed := true
def closeCleanly() {
textModel close()
@@ -899,7 +899,7 @@
undisposed := false
}
}
-
+
def bind eBrowser {
to save() {
if (textModel saveFileIsSet()) {
@@ -926,7 +926,7 @@
startFoundIndex + searchField getText() size())
eBrowser setStatus("Found")
textPane requestFocus()
-
+
} else {eBrowser setStatus("Not Found")}
}
to goto() {
1.5 +1 -1 e/src/jsrc/net/ertp/Assay.java
Index: Assay.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/ertp/Assay.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- Assay.java 2001/09/06 09:55:39 1.4
+++ Assay.java 2001/11/10 19:40:37 1.5
@@ -105,7 +105,7 @@
* contain adequate erights to fund the transfer.
*/
void transfer(Purse src, Purse dest)
- throws UnsealingException, InsufficientERightsException;
+ throws UnsealingException, InsufficientERightsException;
/**
* Return -1.0, 0.0, 1.0, or NaN as the erights represented by this Assay
1.5 +7 -2 e/src/jsrc/net/ertp/InsufficientERightsException.java
Index: InsufficientERightsException.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/ertp/InsufficientERightsException.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- InsufficientERightsException.java 2001/09/06 09:55:39 1.4
+++ InsufficientERightsException.java 2001/11/10 19:40:37 1.5
@@ -29,7 +29,12 @@
* @author <a href="mailto:markm@erights.org">Mark S. Miller</a>
*/
public class InsufficientERightsException extends Exception {
- public InsufficientERightsException() {}
- public InsufficientERightsException(String msg) { super(msg); }
+
+ public InsufficientERightsException() {
+ }
+
+ public InsufficientERightsException(String msg) {
+ super(msg);
+ }
}
1.6 +1 -1 e/src/jsrc/net/ertp/Issuer.java
Index: Issuer.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/ertp/Issuer.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Issuer.java 2001/09/06 09:55:39 1.5
+++ Issuer.java 2001/11/10 19:40:37 1.6
@@ -63,7 +63,7 @@
* @return If so, it returns the candidate.
* @exception UnsealingException If not, it throws
UnsealingException.
- */
+ */
Object vouch(Object candidate) throws UnsealingException;
/**
1.3 +11 -2 e/src/jsrc/net/vattp/data/AuthSecrets.java
Index: AuthSecrets.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/AuthSecrets.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- AuthSecrets.java 2001/10/02 01:29:18 1.2
+++ AuthSecrets.java 2001/11/10 19:40:37 1.3
@@ -27,15 +27,24 @@
* @author Bill Frantz
*/
-/*package*/ class AuthSecrets {
+/*package*/
+class AuthSecrets {
+
String myEProtocolVersion;
+
String myProtocolSuite;
+
byte[] myMacKey;
+
byte[] myDHSecret;
+
byte[] myOutgoingSequence;
+
byte[] myIncomingSequence;
+
+ AuthSecrets() {
+ }
- AuthSecrets() {}
public String toString() {
return "EProtocol=" + myEProtocolVersion + " AuthProtocol=" + myProtocolSuite;
}
1.3 +3 -1 e/src/jsrc/net/vattp/data/ConnectionAttemptFailed.java
Index: ConnectionAttemptFailed.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/ConnectionAttemptFailed.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ConnectionAttemptFailed.java 2001/09/06 09:55:39 1.2
+++ ConnectionAttemptFailed.java 2001/11/10 19:40:37 1.3
@@ -27,7 +27,9 @@
*
* @author Bill Frantz
*/
-/*package*/ class ConnectionAttemptFailed extends IOException {
+/*package*/
+class ConnectionAttemptFailed extends IOException {
+
/*package*/ ConnectionAttemptFailed(String s) {
super(s);
}
1.2 +3 -2 e/src/jsrc/net/vattp/data/ConnectionShutDownException.java
Index: ConnectionShutDownException.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/ConnectionShutDownException.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ConnectionShutDownException.java 2000/12/21 22:15:18 1.1
+++ ConnectionShutDownException.java 2001/11/10 19:40:37 1.2
@@ -18,11 +18,12 @@
Contributor(s): ______________________________________.
*/
+
import java.io.IOException;
/**
- An Exception to report that the connection was shut down normally.
- @author Bill Frantz
+ An Exception to report that the connection was shut down normally.
+ @author Bill Frantz
*/
public class ConnectionShutDownException extends IOException {
1.6 +149 -132 e/src/jsrc/net/vattp/data/DES.java
Index: DES.java
===================================================================
RCS file: /cvs/e/src/jsrc/net/vattp/data/DES.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- DES.java 2001/09/06 09:55:39 1.5
+++ DES.java 2001/11/10 19:40:37 1.6
@@ -1,7 +1,11 @@
package net.vattp.data;
-// $Id: DES.java,v 1.5 2001/09/06 09:55:39 markm Exp $
+
+// $Id: DES.java,v 1.6 2001/11/10 19:40:37 markm Exp $
//
// $Log: DES.java,v $
+// Revision 1.6 2001/11/10 19:40:37 markm
+// tabs, reformatting, little things
+//
// Revision 1.5 2001/09/06 09:55:39 markm
// just formatting and import cleanups
//
@@ -132,7 +136,7 @@
* <a href="http://www.systemics.com/docs/cryptix/">Cryptix Development Team</a>.
* <br>All rights reserved.
*
- * <p><b>$Revision: 1.5 $</b>
+ * <p><b>$Revision: 1.6 $</b>
* @author Systemics Ltd
* @author Geoffrey Keating (this Java implementation)
* @author Eric Young
@@ -148,6 +152,7 @@
//...........................................................................
static private final boolean DEBUG = true;
+
static private final int debuglevel = DEBUG ? 1 : 0;
@@ -159,17 +164,20 @@
//...........................................................................
static private final int
- ROUNDS = 16, // number of encryption/decryption rounds
- BLOCK_SIZE = 8, // DES block size in bytes
- KEY_LENGTH = 8, // DES key length in bytes
- INTERNAL_KEY_LENGTH = ROUNDS * 2; // number of elements in key schedule
+ ROUNDS = 16, // number of encryption/decryption rounds
+ BLOCK_SIZE = 8, // DES block size in bytes
+ KEY_LENGTH = 8, // DES key length in bytes
+ INTERNAL_KEY_LENGTH = ROUNDS * 2; // number of elements in key schedule
/**
* State for encrypt/decrypt/uninitialized.
*/
private int encryptDecryptState = UNINITIALIZED;
+
static private final int UNINITIALIZED = 0;
+
static private final int ENCRYPT = 1;
+
static private final int DECRYPT = 2;
/**
@@ -199,7 +207,7 @@
// represent the bit number that each permutated bit is derived from
// according to FIPS-46
String cd =
- "D]PKESYM`UBJ\\@RXA`I[T`HC`LZQ"+"\\PB]TL`[C`JQ@Y`HSXDUIZRAM`EK";
+ "D]PKESYM`UBJ\\@RXA`I[T`HC`LZQ" + "\\PB]TL`[C`JQ@Y`HSXDUIZRAM`EK";
int j, s, bit;
int count = 0;
int offset = 0;
@@ -224,24 +232,26 @@
// that would be terribly inefficient (code size + time).
// Instead we use a compressed representation --GK
String spt =
- "g3H821:80:H03BA0@N1290BAA88::3112aIH8:8282@0@AH0:1W3A8P810@22;22"+
- "A18^@9H9@129:<8@822`?:@0@8PH2H81A19:G1@03403A0B1;:0@1g192:@919AA"+
- "0A109:W21492H@0051919811:215011139883942N8::3112A2:31981jM118::A"+
- "101@I88:1aN0<@030128:X;811`920:;H0310D1033@W980:8A4@804A3803o1A2"+
- "021B2:@1AH023GA:8:@81@@12092B:098042P@:0:A0HA9>1;289:@1804:40Ph="+
- "1:H0I0HP0408024bC9P8@I808A;@0@0PnH0::8:19J@818:@iF0398:8A9H0<13@"+
- "001@11<8;@82B01P0a2989B:0AY0912889bD0A1@B1A0A0AB033O91182440A9P8"+
- "@I80n@1I03@1J828212A`A8:12B1@19A9@9@8^B:0@H00<82AB030bB840821Q:8"+
- "310A302102::A1::20A1;8"; // OK, try to type _that_!
- // [526 chars, 3156 bits]
+ "g3H821:80:H03BA0@N1290BAA88::3112aIH8:8282@0@AH0:1W3A8P810@22;22" +
+ "A18^@9H9@129:<8@822`?:@0@8PH2H81A19:G1@03403A0B1;:0@1g192:@919AA" +
+ "0A109:W21492H@0051919811:215011139883942N8::3112A2:31981jM118::A" +
+ "101@I88:1aN0<@030128:X;811`920:;H0310D1033@W980:8A4@804A3803o1A2" +
+ "021B2:@1AH023GA:8:@81@@12092B:098042P@:0:A0HA9>1;289:@1804:40Ph=" +
+ "1:H0I0HP0408024bC9P8@I808A;@0@0PnH0::8:19J@818:@iF0398:8A9H0<13@" +
+ "001@11<8;@82B01P0a2989B:0AY0912889bD0A1@B1A0A0AB033O91182440A9P8" +
+ "@I80n@1I03@1J828212A`A8:12B1@19A9@9@8^B:0@H00<82AB030bB840821Q:8" +
+ "310A302102::A1::20A1;8"; // OK, try to type _that_!
+ // [526 chars, 3156 bits]
// The theory is that each bit position in each int of SP_TRANS is
// set in exactly 32 entries. We keep track of set bits.
offset = 0;
int k, c, param;
- for (int i = 0; i < 32; i++) { // each bit position
+ for (int i = 0; i < 32; i++) {
+ // each bit position
k = -1; // pretend the -1th bit was set
bit = 1 << i;
- for (j = 0; j < 32; j++) { // each set bit
+ for (j = 0; j < 32; j++) {
+ // each set bit
// Each character consists of two three-bit values:
c = spt.charAt(offset >> 1) - '0' >> (offset & 1) * 3 & 7;
offset++;
@@ -304,7 +314,9 @@
*
* @return the length in bytes of an input block for this cipher.
*/
- public int blockSize() { return BLOCK_SIZE; }
+ public int blockSize() {
+ return BLOCK_SIZE;
+ }
/**
* <b>SPI</b>: Initializes this cipher for encryption, using the
@@ -316,8 +328,8 @@
* <li> The length of the user key array is not KEY_LENGTH.
* </ul>
*/
- public void initEncrypt (byte[] key)
- throws InvalidKeyException {
+ public void initEncrypt(byte[] key)
+ throws InvalidKeyException {
makeKey(key);
encryptDecryptState = ENCRYPT;
}
@@ -332,8 +344,8 @@
* <li> The length of the user key array is not KEY_LENGTH.
* </ul>
*/
- public void initDecrypt (byte[] key)
- throws InvalidKeyException {
+ public void initDecrypt(byte[] key)
+ throws InvalidKeyException {
makeKey(key);
encryptDecryptState = DECRYPT;
}
@@ -341,10 +353,10 @@
public byte[] crypt(byte[] data) {
if (data.length != BLOCK_SIZE) {
throw new IllegalArgumentException("data.length != BLOCK_SIZE");
- }
- byte [] ans = new byte[BLOCK_SIZE];
- update(data, 0, BLOCK_SIZE, ans, 0);
- return ans;
+ }
+ byte[] ans = new byte[BLOCK_SIZE];
+ update(data, 0, BLOCK_SIZE, ans, 0);
+ return ans;
}
/**
@@ -369,8 +381,8 @@
boolean doEncrypt = (encryptDecryptState == ENCRYPT);
// Avoid overlapping input and output regions.
- if (in == out && (outOffset >= inOffset && outOffset < (long)inOffset+inLen ||
- inOffset >= outOffset && inOffset < (long)outOffset+inLen)) {
+ if (in == out && (outOffset >= inOffset && outOffset < (long)inOffset + inLen ||
+ inOffset >= outOffset && inOffset < (long)outOffset + inLen)) {
byte[] newin = new byte[inLen];
System.arraycopy(in, inOffset, newin, 0, inLen);
in = newin;
@@ -398,8 +410,8 @@
* <li> The length of the user key array is not KEY_LENGTH.
* </ul>
*/
- private void makeKey (byte[] userkey)
- throws InvalidKeyException {
+ private void makeKey(byte[] userkey)
+ throws InvalidKeyException {
if (userkey == null)
throw new InvalidKeyException(getAlgorithm() + ": Null user key");
@@ -408,14 +420,14 @@
throw new InvalidKeyException(getAlgorithm() + ": Invalid user key length");
int i = 0;
- int c = (userkey[i++] & 0xFF) |
- (userkey[i++] & 0xFF) << 8 |
- (userkey[i++] & 0xFF) << 16 |
- (userkey[i++] & 0xFF) << 24;
- int d = (userkey[i++] & 0xFF) |
- (userkey[i++] & 0xFF) << 8 |
- (userkey[i++] & 0xFF) << 16 |
- (userkey[i++] & 0xFF) << 24;
+ int c = (userkey[i++] & 0xFF) |
+ (userkey[i++] & 0xFF) << 8 |
+ (userkey[i++] & 0xFF) << 16 |
+ (userkey[i++] & 0xFF) << 24;
+ int d = (userkey[i++] & 0xFF) |
+ (userkey[i++] & 0xFF) << 8 |
+ (userkey[i++] & 0xFF) << 16 |
+ (userkey[i++] & 0xFF) << 24;
int t = ((d >>> 4) ^ c) & 0x0F0F0F0F;
c ^= t;
@@ -434,10 +446,10 @@
c ^= t;
d ^= t << 1;
- d = (d & 0x000000FF) << 16 |
- (d & 0x0000FF00) |
- (d & 0x00FF0000) >>> 16 |
- (c & 0xF0000000) >>> 4;
+ d = (d & 0x000000FF) << 16 |
+ (d & 0x0000FF00) |
+ (d & 0x00FF0000) >>> 16 |
+ (c & 0xF0000000) >>> 4;
c &= 0x0FFFFFFF;
int s;
@@ -451,19 +463,19 @@
c = (c >>> 1 | c << 27) & 0x0FFFFFFF;
d = (d >>> 1 | d << 27) & 0x0FFFFFFF;
}
- s = SKB[ c & 0x3F ] |
- SKB[0x040 | (((c >>> 6) & 0x03) | ((c >>> 7) & 0x3C))] |
- SKB[0x080 | (((c >>> 13) & 0x0F) | ((c >>> 14) & 0x30))] |
- SKB[0x0C0 | (((c >>> 20) & 0x01) | ((c >>> 21) & 0x06)
- | ((c >>> 22) & 0x38))];
- t = SKB[0x100 | ( d & 0x3F )] |
- SKB[0x140 | (((d >>> 7) & 0x03) | ((d >>> 8) & 0x3c))] |
- SKB[0x180 | ((d >>> 15) & 0x3F )] |
- SKB[0x1C0 | (((d >>> 21) & 0x0F) | ((d >>> 22) & 0x30))];
-
- sKey[j++] = t << 16 | (s & 0x0000FFFF);
- s = s >>> 16 | (t & 0xFFFF0000);
- sKey[j++] = s << 4 | s >>> 28;
+ s = SKB[c & 0x3F] |
+ SKB[0x040 | (((c >>> 6) & 0x03) | ((c >>> 7) & 0x3C))] |
+ SKB[0x080 | (((c >>> 13) & 0x0F) | ((c >>> 14) & 0x30))] |
+ SKB[0x0C0 | (((c >>> 20) & 0x01) | ((c >>> 21) & 0x06)
+ | ((c >>> 22) & 0x38))];
+ t = SKB[0x100 | (d & 0x3F)] |
+ SKB[0x140 | (((d >>> 7) & 0x03) | ((d >>> 8) & 0x3c))] |
+ SKB[0x180 | ((d >>> 15) & 0x3F)] |
+ SKB[0x1C0 | (((d >>> 21) & 0x0F) | ((d >>> 22) & 0x30))];
+
+ sKey[j++] = t << 16 | (s & 0x0000FFFF);
+ s = s >>> 16 | (t & 0xFFFF0000);
+ sKey[j++] = s << 4 | s >>> 28;
}
}
@@ -477,16 +489,16 @@
* @param encrypt true to encrypt, false to decrypt
*/
private void
- des (byte[] in, int inOffset, byte[] out, int outOffset, boolean encrypt) {
+ des(byte[] in, int inOffset, byte[] out, int outOffset, boolean encrypt) {
int[] lr = {
- (in[inOffset++] & 0xFF) |
- (in[inOffset++] & 0xFF) << 8 |
- (in[inOffset++] & 0xFF) << 16 |
- (in[inOffset++] & 0xFF) << 24,
- (in[inOffset++] & 0xFF) |
- (in[inOffset++] & 0xFF) << 8 |
- (in[inOffset++] & 0xFF) << 16 |
- (in[inOffset ] & 0xFF) << 24};
+ (in[inOffset++] & 0xFF) |
+ (in[inOffset++] & 0xFF) << 8 |
+ (in[inOffset++] & 0xFF) << 16 |
+ (in[inOffset++] & 0xFF) << 24,
+ (in[inOffset++] & 0xFF) |
+ (in[inOffset++] & 0xFF) << 8 |
+ (in[inOffset++] & 0xFF) << 16 |
+ (in[inOffset] & 0xFF) << 24};
initialPermutation(lr);
@@ -501,18 +513,18 @@
int R = lr[0];
int L = lr[1];
- out[outOffset++] = (byte) L;
- out[outOffset++] = (byte)(L >> 8);
+ out[outOffset++] = (byte)L;
+ out[outOffset++] = (byte)(L >> 8);
out[outOffset++] = (byte)(L >> 16);
out[outOffset++] = (byte)(L >> 24);
- out[outOffset++] = (byte) R;
- out[outOffset++] = (byte)(R >> 8);
+ out[outOffset++] = (byte)R;
+ out[outOffset++] = (byte)(R >> 8);
out[outOffset++] = (byte)(R >> 16);
- out[outOffset ] = (byte)(R >> 24);
+ out[outOffset] = (byte)(R >> 24);
}
/** Implements DES encryption without IP and FP. */
- private void encrypt_base (int[] io) {
+ private void encrypt_base(int[] io) {
int L = io[0];
int R = io[1];
@@ -527,33 +539,33 @@
u = R ^ sKey[i++];
t = R ^ sKey[i++];
t = t >>> 4 | t << 28;
- L ^= (SP_TRANS[0x040 | (t & 0x3F)] |
- SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
- SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
- SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
- SP_TRANS[ u & 0x3F ] |
- SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
- SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
- SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+ L ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+ SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+ SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+ SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+ SP_TRANS[u & 0x3F] |
+ SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+ SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+ SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
u = L ^ sKey[i++];
t = L ^ sKey[i++];
t = t >>> 4 | t << 28;
- R ^= (SP_TRANS[0x040 | (t & 0x3F)] |
- SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
- SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
- SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
- SP_TRANS[ u & 0x3F ] |
- SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
- SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
- SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+ R ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+ SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+ SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+ SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+ SP_TRANS[u & 0x3F] |
+ SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+ SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+ SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
}
io[0] = R >>> 1 | R << 31;
io[1] = L >>> 1 | L << 31;
}
/** Implements DES decryption without IP and FP. */
- private void decrypt_base (int[] io) {
+ private void decrypt_base(int[] io) {
int L = io[0];
int R = io[1];
@@ -568,32 +580,32 @@
t = R ^ sKey[i--];
u = R ^ sKey[i--];
t = t >>> 4 | t << 28;
- L ^= (SP_TRANS[0x040 | (t & 0x3F)] |
- SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
- SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
- SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
- SP_TRANS[ u & 0x3F ] |
- SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
- SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
- SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+ L ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+ SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+ SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+ SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+ SP_TRANS[u & 0x3F] |
+ SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+ SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+ SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
t = L ^ sKey[i--];
u = L ^ sKey[i--];
t = t >>> 4 | t << 28;
- R ^= (SP_TRANS[0x040 | (t & 0x3F)] |
- SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
- SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
- SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
- SP_TRANS[ u & 0x3F ] |
- SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
- SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
- SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
+ R ^= (SP_TRANS[0x040 | (t & 0x3F)] |
+ SP_TRANS[0x0C0 | ((t >>> 8) & 0x3F)] |
+ SP_TRANS[0x140 | ((t >>> 16) & 0x3F)] |
+ SP_TRANS[0x1C0 | ((t >>> 24) & 0x3F)] |
+ SP_TRANS[u & 0x3F] |
+ SP_TRANS[0x080 | ((u >>> 8) & 0x3F)] |
+ SP_TRANS[0x100 | ((u >>> 16) & 0x3F)] |
+ SP_TRANS[0x180 | ((u >>> 24) & 0x3F)]);
}
io[0] = R >>> 1 | R << 31;
io[1] = L >>> 1 | L << 31;
}
- static private void initialPermutation (int[] io) {
+ static private void initialPermutation(int[] io) {
int L = io[0];
int R = io[1];
int t = ((R >>> 4) ^ L) & 0x0F0F0F0F;
@@ -613,7 +625,7 @@
io[1] = R ^ (t << 1);
}
- static private void finalPermutation (int[] io) {
+ static private void finalPermutation(int[] io) {
int L = io[1];
int R = io[0];
int t = (R >>> 1 ^ L) & 0x55555555;
@@ -633,7 +645,9 @@
io[0] = R ^ (t << 4);
}
- static private String getAlgorithm() { return "DES"; }
+ static private String getAlgorithm() {
+